我需要从客户端到服务器建立隧道。问题是它们之间有两个盒子:
CLIENT --- FIREWALL ---{ SERVER1 --- SERVER1.2 }
CLIENT ============================= SERVER1.2
当我中间只有一个盒子时我知道该怎么做:
CLIENT --- FIREWALL ---{ SERVER1 }
CLIENT ==================SERVER1
从客户端:
ssh -l **user_firewall** -L 8112:**server1_ip**:22 **firewall_ip** cat -
进而 :
ssh -C -c arcfour256 localhost -l **user_server1** -p 8112
有谁能提供一些关于这个问题的见解吗?如果您需要更多信息,我很乐意提供。
答案1
我倾向于使用ProxyCommand
——只要你在中间盒上安装了 netcat,你基本上就可以根据需要浏览尽可能多的层。
我可以给你一个例子,但是 (5) 手册页中的例子ssh_config
已经很好地完成了工作。
答案2
终于我成功了。谢谢@womble!
我修改了 /.ssh/config:
Host server1
Hostname server1_ip
User server1_user
ForwardAgent yes
Port 22
ProxyCommand ssh -oCiphers=arcfour128,arcfour256,arcfour,blowfish-cbc firewall_user@firewall_ip nc %h %p
Host server12
Hostname server12_ip
User server12_user
ForwardAgent yes
Port 22
ProxyCommand ssh -oCiphers=arcfour128,arcfour256,arcfour,blowfish-cbc server1 nc %h %p
现在,当我ssh server12
从客户端输入时,我有一个shell server12
,跳过防火墙和服务器1。