Якщо ви використовуєте більш нову версію 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.