我今天刚刚开始使用 SSH 隧道,但是我坚持了一个有点愚蠢的点(我认为)...可能只是错过了一些显而易见的东西,但是这里是:
我有两台 Linux 服务器和一台 Windows 客户端(服务器 1、服务器 2、客户端)。我已设置服务器 1 以创建到服务器 2 的反向 ssh 隧道,如下所示:
ssh -nNfR 8022:localhost:22 user@server1
之后我可以使用以下命令在 server1 上成功获取 shell:
ssh -p 8022 localhost
从逻辑上讲,这让我认为我应该能够创建到 server1:8022 的 putty ssh 连接并获取 server2 的 shell,但我收到连接被拒绝错误。有人知道我遗漏了什么吗,或者我完全走错了路 :)
谢谢
答案1
这是一个常见问题。您需要在服务器上启用端口访问。修改网关端口到是的在/etc/ssh/sshd_config。
看sshd_config 命令在下面网关端口。
您可能还需要为您的隧道设置指定绑定地址:
ssh -nNfR *:8022:localhost:22 user@server1
绑定到所有接口。
看人SSH在下面-R
答案2
您正在使用
ssh -nNfR 8022:localhost:22 user@server1
这基本上是在说‘打开 server1 上的 8022 端口连接到 localhost 端口 22’,但是 server1 上的‘localhost’是……server1:) 尝试:
ssh -nNfR 8022:server2:22 user@server1
另外,当您在第一个命令中使用“localhost”时,您将端口绑定到不接受外部连接的环回接口(127.0.0.1),请尝试使用 server1 主机名或 IP 进行检查:)