我在工作时可以访问两台服务器。服务器 A 托管 git 存储库,并且对外可见。我希望能够将存储库克隆到托管在服务器 A 上的服务器 B 中。
目前,我无法从服务器 B ssh 到服务器 A。我假设防火墙阻止了这一操作。
因此,我尝试按照我遇到的写作创建一个 ssh 隧道,但到目前为止无济于事。
从服务器 A 的 shell:
$ ssh -L 1234:localhost:22 user@server_b
这成功使我登录到服务器 B。从那里我似乎无法使用以下命令执行任何操作ssh
:
$ ssh user@localhost
$ user@localhost's password: <entered correctly>
$ Permission denied, please try again.
$ ssh user@localhost -p 1234
$ ssh: connect to host localhost port 1234: Connection refused
尝试克隆
$ git clone ssh://user@localhost:1234/path/to/repo.git/
$ ssh: connect to host localhost port 1234: Connection refused
$ fatal: The remote end hung up unexpectedly
我的初始隧道命令是否不正确?或者我是否需要让网络管理员在防火墙上打开某些东西?
答案1
-R
您需要使用而不是 来创建反向隧道-L
。
在本地机器上,使用
ssh -R 1234:server_a:22 user@server_b
您将获得一个 shell server_b
。如果您这样做
ssh -p 1234 user@localhost
在这个 shell 上,这将把你连接到的 22 号端口server_a
,通过你的本地机器建立隧道。
此后,你的 git clone 命令应该可以工作了。