我想通过公共访问服务器( public )连接NAT后的计算机(本地)。
在当地:
ssh -g -R 8000:localhost:22 user@public然后在公开场合:
ssh -p 8000 user@public 但我得到了error: Connection refused.
当我登录到公共服务器时,我可以验证隧道是通过以下方式工作的:
ssh -p 8000 localhost它在本地计算机上打开ssh。
我是否怀疑公共服务器应该充当透明的代理?或者是如何让它像那样工作。
发布于 2009-11-25 11:15:19
为了安全起见,SSH远程端口转发将默认绑定到本地主机/回送。允许其他主机访问您转发的端口通常并不可取。
要覆盖这种行为,您需要做两件事:
GatewayPorts选项。*绑定到客户端上的所有地址。ssh -R \*:8000:localhost:22 user@public转义星号,以确保shell不会展开它。
发布于 2009-11-25 11:14:21
这看起来更像是远程计算机公共设置的问题。默认情况下,openssh (我猜是正在使用的)设置GatewayPorts改为no,这迫使远程端口转发只能侦听本地主机。
然后,解决方案是编辑/etc/ssh/sshd_config (或等效的),将GatewayPorts设置为yes或config指定的。如果选择后者,则必须将隧道请求更改为类似于-R *:8000:localhost:22的请求。
https://serverfault.com/questions/88141
复制相似问题