我今天刚刚开始玩SSH隧道,但我坚持了一个愚蠢的点(我认为)…可能只是失去了一些明显的东西,但这里有:
我有两个Linux服务器和一个单一的Windows客户端(server1,server2,客户端)。 我已经build立了server1创build一个反向ssh隧道到server2,如下所示:
ssh -nNfR 8022:localhost:22 user@server1
之后,我可以使用以下命令成功获取server1上的一个shell:
ssh -p 8022 localhost
从逻辑上讲,这导致我认为我应该能够创build一个putty ssh连接到server1:8022并获得一个server2的shell,但是我得到一个拒绝连接的错误。 任何人都知道我错过了什么,或者我完全在错误的轨道上:)
谢谢
这是一个普遍的问题。 您需要在服务器上启用端口访问。 在/ etc / ssh / sshd_config 中将GatewayPorts修改为yes 。
请参阅GatewayPorts下的man sshd_config 。
您可能还需要为隧道设置指定一个绑定地址:
ssh -nNfR *:8022:localhost:22 user@server1
绑定到所有接口。
请参阅-R下的man ssh
您正在使用
ssh -nNfR 8022:localhost:22 user@server1
这基本上是说'打开服务器1上的8022端口连接到本地主机端口22',但'本地主机'在服务器1 …服务器1 :)尝试:
ssh -nNfR 8022:server2:22 user@server1
另外,当你在第一个命令中使用'localhost'时,你将端口绑定到不接受来自外部连接的回送接口(127.0.0.1),请尝试使用server1主机名或IP来检查:)