我有以下设置。
本地-服务器A-服务器B
我需要从本地到b的scp,ssh。我现在要做的是我从scp / ssh到A,然后从A到BI,想知道如何设置portforwarding,因此我可以将ssh到特定的端口,并直接到达服务器B
这听起来像是反向SSH隧道的工作。
服务器B位于您无法控制的NAT或防火墙后面的网络上。在这种情况下,将无法在路由器上进行端口转发。
2021更新:改用ProxyCommand或ProxyJump选项:https ://www.redhat.com/sysadmin/ssh-proxy-bastion-proxyjump
ProxyCommand:
将以下内容添加到您的ssh配置中~/.ssh/config
:
Host server-b
ProxyCommand ssh user@server-a -W %h:%p
您甚至可以在命令行上执行此操作:
ssh -o ProxyCommand="ssh -W %h:%p server-a" server-b
ProxyJump:
SSH 7.3及更高版本具有以下-J
标志ProxyJump
:
ssh -J user@<server-a:port> <user@server-b:port>
原始答案:
在反向隧道中,您通过可公开访问的A将连接隧道传输到B。为此,您可以使用命令行中指定的端口转发从B-> A进行SSH。
ssh user@server-a -L 2222:server-b:22 -fN
然后从本地-> A使用指定的转发端口进行SSH:
ssh -p2222 server-b-user@localhost
...这会将您连接到服务器B。
资料来源: https : //www.redhat.com/sysadmin/ssh-proxy-bastion-proxyjump(2021)
http://www.revsys.com/writings/quicktips/ssh-tunnel.html
autossh
如果要自动创建并保持打开连接,则可能还需要使用。
http://www.ubuntugeek.com/automatically-restart-ssh-sessions-and-tunnels-using-autossh.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句