Ответ Джакуйе правильный, но поскольку OpenSSH 7.3
теперь можно использовать -J
ProxyJump
, что проще. Смотрите мои заметки:
7.3
или выше Используйте ProxyJump
. Как поясняется в руководстве:
-J [user@]host[:port]
Connect to the target host by first making an ssh connection to the jump host and then establishing a TCP forwarding to the ultimate destination from there. Multiple jump hops may be specified separated by comma characters. This is a shortcut to specify a ProxyJump configuration directive.
~/.ssh/config
пример ~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2_behind_server1
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
ProxyJump server1
Подключиться к
ssh server2_behind_server1 -v
Добавить -v
для подробного вывода
-J
Пример командной строки ~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
Подключиться к
ssh server2 -J server1 -v
Или используйте-o
ssh server2 -o 'ProxyJump server1' -v
5.4
или выше Используйте ProxyCommand
с-W
~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh server1 -W %h:%p
Подключиться к
ssh server2 -v
Или используйте-o
ssh server2 -o 'ProxyCommand ssh server1 -W %h:%p' -v
5.4
~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh server1 nc %h %p 2> /dev/null
Подключиться к:
ssh server2 -v
Или используйте-o
ssh server2 -o 'ProxyCommand ssh server1 nc %h %p 2> /dev/null' -v
-J
добавлено в OpenSSH 7.3
- ssh(1): Add a ProxyJump option and corresponding -J command-line flag to allow simplified indirection through a one or more SSH bastions or "jump hosts".
-W
добавлено в OpenSSH 5.4
- Added a 'netcat mode' to ssh(1): "ssh -W host:port..." This connects stdio on the client to a single port forward on the server. This allows, for example, using ssh as a ProxyCommand to route connections via intermediate servers. bz#1618
Мое небольшое руководство может вам пригодиться! Я некоторое время боролся со спящим режимом.