Se você estiver executando uma versão mais recente do OpenSSH (7.3+), use ProxyJump
que combina tudo magicamente:
ssh -J windows_machine remote_server
Qual é o seu ~/.ssh/config
:
Host remote_server
HostName remote_server
ProxyJump windows_machine
User myname
ProxyJump
suporta a sintaxe SSH completa, portanto, se você for jim
on windows_server
e usar a porta 2222
para ssh. remote_server
está no IP 192.168.0.110
do windows_server
, então você pode escrever:
Host remote_server
HostName 192.168.0.110
ProxyJump jim@windows_machine:2222
User myname
E ainda é só executar ssh remote_server
para chegar lá.
Se você estiver executando uma versão mais antiga do SSH, use ProxyCommand - isso permite que você informe o SSH primeiro execute um comando para estabelecer uma conexão proxy antes de executar o comando SSH real.
ssh -o ProxyCommand='ssh -W %h:%p windows_machine' remote_server
Isso usa a opção SSH -W , que é uma abreviação para o mais arcano sintaxe do netcat .
Observe que, como quando você executa ssh remote_server
, agora está no windows_machine
, é necessário garantir que você use o IP do remove_server
da caixa de salto em vez do IP da sua máquina - estes podem ser os mesmos.
Você pode adicionar essa diretiva ao arquivo ~/.ssh/config
:
Host remote_server
HostName remote_server
User myname
ProxyCommand ssh -W %h:%p windows_machine
Isso significa que se remote_server
for uma máquina diferente vista de windows_machine
, você pode colocar isso na configuração e ainda usar ssh remote_server
.