Linux 隧道SSH:通过另一台服务器访问被防火墙阻止的服务器

Linux 隧道SSH:通过另一台服务器访问被防火墙阻止的服务器,linux,Linux,abcasdnaksjbdkahsbdhabsjdhabasjhdbajshbdjasbh如果使用openssh: 琐碎的方式 PC> ssh server1_user@server1 server1> ssh server2_user@server2 PC TTY1> ssh -L 2222:192.168.0.3:22 server1_user@server1 PC TTY2> ssh server2_user@localhost -p 2222 代理方式 PC&

abcasdnaksjbdkahsbdhabsjdhabasjhdbajshbdjasbh

如果使用openssh:

琐碎的方式

PC> ssh server1_user@server1
server1> ssh server2_user@server2
PC TTY1> ssh -L 2222:192.168.0.3:22 server1_user@server1
PC TTY2> ssh server2_user@localhost -p 2222
代理方式

PC> ssh server1_user@server1
server1> ssh server2_user@server2
PC TTY1> ssh -L 2222:192.168.0.3:22 server1_user@server1
PC TTY2> ssh server2_user@localhost -p 2222
在server1上获取一个
netcat
,如果您无法安装,您可以尝试静态编译一个(检查busybox),下载一个(查找server1和OS版本并检查其repos)。如果您有python/perl,那么有命令的“脚本实现”

~/.ssh/config
文件上添加:

Host server1
  HostName 10.0.0.146
  User server1_user

Host server2
  ProxyCommand ssh -C -q server1 /<server1_path_to>/nc 192.168.0.3 22 
  User server2_user
隧道通道

PC> ssh server1_user@server1
server1> ssh server2_user@server2
PC TTY1> ssh -L 2222:192.168.0.3:22 server1_user@server1
PC TTY2> ssh server2_user@localhost -p 2222

是否将先前的重复项(实际上,是问题的更复杂形式,但它的任何答案也是此问题的答案)移动到ServerFault,因为它与此问题一样,在StackOverflow上是离题的。(实际上,我会争论超级用户而不是服务器故障——SSH是最终用户软件,就像它是一个系统管理工具一样——但无论如何,这绝不是软件开发的问题)。(…如果您试图编写自己的SSH客户机,即使用paramiko或Jsch,那么这将是一个堆栈溢出问题)。您缺少代理隧道方式,使用
ssh-W
:-)是的,昨天由Charles Duffy评论发现