我想知道是否有人能够帮助我多个隧道跃点服务器…
基本上我的设置看起来像这样…
[desktop01]=====[server01]=====[server02]---------[machine01] \--------[machine02] \-------[machine03] \------[machine04]
我想设置一些SSH隧道,以便从我的桌面上,我可以直接ssh到机器01到04,而不必ssh到每个框之间轮stream…
因此,desktop01只能看到server01,server02只能接受来自server01的连接,而01到04的机器只能接受来自server02的连接。
任何人都可以帮助,因为我真的坚持这一点。
先谢谢你 :)
~/.ssh/config的以下configuration允许您通过使用%符号分隔它们来dynamic设置跳转主机:
Host *%* ProxyCommand ssh $(echo %h | cut -d%% -f2-) nc $(echo %h | cut -d%% -f1) %p
然后你可以运行ssh machine01%server02%server01 ,然后通过server01和server02连接到machine01。 (不幸的是,当你需要指定非默认的用户名时,这不起作用。)
那么,你可以用以下的方式构build类似于以下的东西:
(语法: lport:remotehost:rport ,意思是“将本地机器上的端口端口转发到远程机器上的rport)
[server01] [server02] 22001:server02:22001 22001:machine01:22 22002:server02:22002 22002:machine02:22 22003:server02:22003 22003:machine03:22 22004:server02:22004 22004:machine04:22
然后,您可以执行ssh -p 22001 usernamefrom_machine01@server01以使用相关的用户名连接到ssh -p 22001 usernamefrom_machine01@server01 。
要构build端口转发,请使用ssh的-L选项,或者在~/.ssh/config文件的帮助下进行~/.ssh/config 。
有关详细信息,请参阅man ssh和man ssh_config 。
这是在几个选项回答在superuser.com https://superuser.com/questions/96489/ssh-tunnel-via-multiple-hops