YASS Yet Another Simple Solution
ssh -f -L 2222:HostC_IP_or_Name:22 userOnB@hostB sleep 10 &&
ssh -o HostKeyAlias=HostC -p 2222 userOnC@localhost
- Première commande : ouvrir une connexion ssh à HostB et dire HostB pour transmettre les connexions de localhost:2222 a HôteC:22 .
- le site
-f
paramètre indiquant à SSH de passer en arrière-plan une fois la connexion établie
- La deuxième commande ouvre simplement une connexion client à localhost:2222
- Option HostKeyAlias ne sont pas nécessaires, mais peuvent aider à empêcher la connexion à un mauvais hôte.
- Nota : commande
sleep 10
sont nécessaires pour maintenir la connexion jusqu'à ce que la deuxième commande ssh utilise le port transféré. Ensuite, la première ssh se fermera lorsque le deuxième ssh quitter le port transféré.
vous pouvez maintenant exécuter les sessions ssh suivantes :
ssh -o HostKeyAlias=HostC -p 2222 userOnC@localhost
Variante :
ssh -f -L 2222:HostC_IP_or_Name:22 userOnB@hostB sleep 10 &&
ssh -M -S ~/.ssh/ssh_HostC22userOnC.sock -o HostKeyAlias=HostC -p 2222 userOnC@localhost
des sessions ssh ultérieures pourraient être ouvertes en exécutant :
ssh -S ~/.ssh/ssh_HostC22userOnC.sock userOnC@localhost
Le principal avantage de l'utilisation des paramètres -M et -S est qu'une seule connexion est ouverte de HostA à HostC, la session suivante ne sera pas authentifiée à nouveau et s'exécutera beaucoup plus rapidement.