Мне нужно сделать туннель от клиентского ящика к серверу. Проблема в том, что между ними 2 прямоугольника:
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
Кто-нибудь может дать некоторое представление об этой проблеме. Если вам нужна дополнительная информация, я с радостью предоставлю ее.
Я был бы склонен использовать ProxyCommand
- если у вас установлен netcat на промежуточных ящиках, вы можете в принципе пропустить столько слоев, сколько вам нужно.
Я мог бы привести вам пример, но тот, что в ssh_config
(5) справочная страница отлично справляется со своей задачей.
Наконец, у меня это заработало. Спасибо @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
от клиента у меня оболочка в server12
, прыгая межсетевой экран и server1.