SSH 远程端口转发

SSH 远程端口转发

我想通过可公开访问的服务器(公共)连接到 NAT 后面的计算机(本地)。

在本地:ssh -g -R 8000:localhost:22 user@public

然后在公共场合:ssh -p 8000 user@public 但是我收到错误:连接被拒绝。

当我登录到公共服务器时,我可以通过以下方式验证隧道是否正常工作:ssh -p 8000 localhost 在本地计算机上打开 ssh。

我怀疑公共服务器应该充当透明代理是错误的?或者如何让它像那样工作。

谢谢

答案1

根据手册,您可以在公共主机上设置选项(在sshd_config):

GatewayPorts yes

然后在本地尝试

ssh -R *:8000:localhost:22 user@public

(请注意额外的*:)。

如果你无权访问公共的sshd_config,你可以像这样创建一个额外的端口转发:
在本地(lancomp):ssh -R 8001:localhost:22 user@public
在公共:ssh -g -L 8000:localhost:8001 user@lancomp

当然,在两种情况下都可以从外部进行连接:ssh -p 8000 user@public

答案2

端口 8000 上的列表将仅在公共计算机的本地主机地址上进行。如果您希望它绑定到“真实”网络接口,您可以尝试-R public:8000:localhost:22

相关内容