我有一个位于防火墙后面的 git 服务器。我可以从家里访问防火墙,但不能访问 git 服务器。但是,我可以从防火墙访问 git 服务器(即我可以 SSH 到防火墙,然后从防火墙 SSH 到 git 服务器)。我正在寻找从我的家用机器推送和拉取到 git repos,我认为 SSH ProxyCommand 会做到这一点。所以我在我的 SSH 配置文件中添加了以下内容:
Host git_server
HostName git_server.dom
User user_git_server
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh firewall exec nc %h %p
Host firewall
HostName firewall.dom
User user_firewall
IdentityFile ~/.ssh/id_rsa
有了这个设置,我可以直接通过 SSH 连接到 git 服务器ssh git_server
。但是,需要与服务器对话的 git 命令不起作用。git remote show origin
失败并显示以下消息:
ssh: connect to host git_server.dom port 22: Operation timed out
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
原始仓库的 url 是
ssh://user_git_server@git_server.dom/path/to/bare/repository/repo.git
我想我已经完成了大部分工作,但缺少一个关键的小部分。任何指向我可能做错了什么的指针?