Si vous utilisez une version plus récente d'OpenSSH (7.3+), vous pouvez utiliser ProxyJumpce qui fait tout cuire par magie:
ssh -J windows_machine remote_server
Lequel ~/.ssh/configressemble à:
Host remote_server
HostName remote_server
ProxyJump windows_machine
User myname
ProxyJumpprend en charge la syntaxe SSH complète, donc si vous êtes jimactivé windows_serveret qu'il utilise le port 2222pour ssh. remote_serverest à IP à 192.168.0.110partir du windows_serveralors vous pouvez écrire:
Host remote_server
HostName 192.168.0.110
ProxyJump jim@windows_machine:2222
User myname
Et toujours courir ssh remote_serverpour y arriver.
Si vous exécutez une ancienne version de SSH, utilisez ProxyCommand - cela vous permet de dire à SSH d'exécuter d'abord une commande pour établir une connexion proxy, avant d'exécuter la commande SSH réelle.
ssh -o ProxyCommand='ssh -W %h:%p windows_machine' remote_server
Cela utilise l' option SSH -W , qui est un raccourci pour la syntaxe Netcat plus obscure .
Notez que, comme lorsque vous exécutez, ssh remote_servervous êtes maintenant sur le, windows_machinevous devez vous assurer que vous utilisez l'IP de la remove_server boîte de saut plutôt que l'IP de votre machine - ceux-ci peuvent bien être les mêmes.
Vous pouvez ensuite ajouter cette directive à votre ~/.ssh/configfichier:
Host remote_server
HostName remote_server
User myname
ProxyCommand ssh -W %h:%p windows_machine
Cela signifie que si remote_server est une machine différente comme vu depuis, windows_machinevous pouvez le mettre dans la configuration et toujours l'utiliser ssh remote_server.