Je suis à l'aise avec l'utilisation de la fonction ProxyCommand de ssh et je peux l'utiliser pour parcourir plusieurs hôtes bastions pour atteindre efficacement l'hôte final. Mais je n'arrive pas à comprendre comment cela fonctionne réellement dans le backend.
Par exemple. J'ai le fichier de configuration suivant.
Host final
Hostname final.com
Port 22
AgentForwarding yes
User guestuser
ProxyCommand "ssh user@bastion.com -W %h:%p"
Je comprends que pour se connecter à l'hôte final
, le ProxyCommand s'exécutera avant d'établir la connexion final.com
. Mais je n'arrive toujours pas à comprendre l'ordre des connexions.
Et que fait l'option -W %h:%p
? Je comprends que c'est la fonctionnalité netcat et est similaire à nc %h %p
.
Donc, pour autant que je sache, c'est la séquence des opérations. Veuillez me faire savoir si je me trompe. J'utiliserai le fichier de configuration spécifié ci-dessus dans mon exemple.
- L'utilisateur entre
ssh final
- Une connexion ssh à bastion.com a été créée.
- Un tunnel netcat est créé à partir de bastion.com vers le port 22 de final.com. Le stdin de netcat est connecté au shell obtenu lors de la connexion à bastion.com.
- Nous avons donc maintenant une connexion de notre système à final.com. La première moitié de cette connexion est une connexion ssh de notre système à bastion.com. La seconde moitié de cette connexion est un tunnel netcat de bastion.com à final.com.
- La
ssh final
commande Now prend la connexion ci-dessus comme proxy et tunnellise ses données via cette connexion existante.
De plus, je voudrais également savoir si cette technique est également connue sous le nom d' empilement ssh ?
ajout de sauts de ligne