J'essaie de tunnel vers un serveur via un serveur pont. Jusqu'à présent, j'ai pu le faire fonctionner correctement à partir du shell de commande en utilisant la commande suivante :
ssh -A -t [email protected] ssh -A [email protected]
Mais j'ai essayé d'intégrer cela dans mon ~/.ssh/config
fichier et j'ai des problèmes. J'ai essayé :
Host axp
User remote_userid
HostName remoteserver.com
IdentityFile ~/.ssh/id_rsa.eric
ProxyCommand ssh -A -t [email protected]_userid.com ssh -A [email protected]%h
Mais quand je le fais, je reçois le message d'erreur suivant de remoteserver.com
et je ne sais pas ce qui en est la cause :
ksh :SSH-2.0-OpenSSH_6.8^M :introuvable
Je sais que lorsque je me connecte à remoteserver.com
, mon shell est /usr/bin/ksh
.
J'ai essayé d'ajouter des arguments de chemin aux commandes ssh dans le fichier de configuration, mais cela n'a fait aucune différence.
Des idées de ce que ça peut être ?
Réponse acceptée :
La réponse de Jakuje est juste, mais depuis OpenSSH 7.3
, vous pouvez maintenant utiliser -J
ProxyJump
ce qui est plus facile. Voir mes notes :
OpenSSH 7.3
ou supérieur
Utiliser ProxyJump
. Comme expliqué dans le manuel :
-J [[email protected]]host[:port]
Connectez-vous à l'hôte cible en établissant d'abord une connexion ssh avec l'hôte de saut, puis en établissant un transfert TCP vers la destination finale à partir de là. Plusieurs sauts de saut peuvent être spécifiés séparés par des virgules. Il s'agit d'un raccourci pour spécifier une directive de configuration ProxyJump.
ProxyJump ~/.ssh/config
exemple
~/.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
Connectez-vous avec
ssh server2_behind_server1 -v
Ajouter -v
pour une sortie détaillée
ProxyJump -J
Exemple de ligne de commande
~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
Connectez-vous avec
ssh server2 -J server1 -v
Ou utilisez -o
ssh server2 -o 'ProxyJump server1' -v
OpenSSH 5.4
ou supérieur
Utilisez ProxyCommand
avec -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
Connectez-vous avec
ssh server2 -v
Ou utilisez -o
ssh server2 -o 'ProxyCommand ssh server1 -W %h:%p' -v
OpenSSH ci-dessous 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
Connectez-vous avec :
ssh server2 -v
Ou utilisez -o
ssh server2 -o 'ProxyCommand ssh server1 nc %h %p 2> /dev/null' -v
Sources
-J
ajouté dans OpenSSH 7.3
- ssh(1) :ajoutez une option ProxyJump et l'indicateur de ligne de commande -J
correspondant pour permettre une indirection simplifiée via un ou plusieurs bastions SSH
ou "jump hosts".
-W
ajouté dans OpenSSH 5.4
- Ajout d'un "mode netcat" à ssh(1) :"ssh -W host:port …" Cela connecte
stdio sur le client à un seul port de redirection sur le serveur. Cela
permet, par exemple, d'utiliser ssh comme ProxyCommand pour router les connexions
via des serveurs intermédiaires. bz#1618