Если вы работаете с более новой версией OpenSSH (7.3+), вы можете использовать тот, ProxyJumpкоторый объединяет все магическим образом:
ssh -J windows_machine remote_server
Который по вашему ~/.ssh/configвыглядит:
Host remote_server
HostName remote_server
ProxyJump windows_machine
User myname
ProxyJumpподдерживает полный синтаксис SSH, так что если вы jimна windows_serverи использует порт 2222для SSH. remote_serverна IP 192.168.0.110с того, что windows_serverвы можете написать:
Host remote_server
HostName 192.168.0.110
ProxyJump jim@windows_machine:2222
User myname
И все же просто беги, ssh remote_serverчтобы добраться туда.
Если вы используете более старую версию SSH, используйте ProxyCommand - это позволяет вам указать SSH сначала выполнить команду для установки прокси-соединения, прежде чем выполнять настоящую команду SSH.
ssh -o ProxyCommand='ssh -W %h:%p windows_machine' remote_server
При этом используется опция SSH -W , которая является сокращением для более загадочного синтаксиса netcat .
Обратите внимание, что, поскольку при запуске ssh remote_serverвы работаете, windows_machineвам нужно убедиться, что вы используете IP-адрес remove_server из поля перехода, а не IP-адрес вашего компьютера - они вполне могут быть одинаковыми.
Затем вы можете добавить эту директиву в ваш ~/.ssh/configфайл:
Host remote_server
HostName remote_server
User myname
ProxyCommand ssh -W %h:%p windows_machine
Это означает , что если remote_server есть другая машина , как видно из , windows_machineто вы можете положить , что в конфигурации и до сих пор просто использовать ssh remote_server.