Je cherchais une solution au problème suivant depuis 2 heures sans succès.
Développement:
J'utilise l'authentification publickey pour me connecter à mes serveurs. J'utilise le transfert d'agent ssh afin de ne pas avoir à gérer les clés publiques / privées.
Disons que j'ai des serveurs A, B and C
.
Cela fonctionne très bien si je me connecte depuis LOCAL ---> A ---> B
.
Cela fonctionne aussi très bien si je le fais LOCAL ---> A ---> C
.
Maintenant, si j'essaye LOCAL ---> A ---> B ---> C
, SSH ne peut pas se connecter depuisB to C
.
À noter: je me connecte au serveur A en tant que liquidité, tandis que je me connecte au serveur B en tant que root. La connexion au serveur B en tant que liquidité résout le problème, mais ce n'est pas une option pour moi.
Selon la recommandation d'un utilisateur, j'utilise ssh -A
chaque fois pour m'assurer que le transfert d'agent est activé.
J'ai trouvé une question similaire, sans réponse ici: est-il possible de chaîner le transfert d'agent ssh via plusieurs sauts?
Selon @Zoredache ici: /server//a/561576/45671 J'ai juste besoin d'ajuster la configuration de mon client sur chaque système intermédiaire. Ce que je crois avoir fait.
ProxyCommand
saut (comme expliqué ici ) au lieu de transférer l'agent SSH. Pour votre approche, vous devrez faire confiance à toutes les machines de la chaîne car elles peuvent (ab) utiliser vos clés privées. J'aime également beaucoup l'approche ProxyCommand car la vérification des hôtes connus est effectuée localement, et de plus, vous pouvez configurer la chaîne dans votre configuration SSH afin que vous puissiez utiliser une seule commande pour vous connecter à C.Réponses:
Pour que le transfert d'agent fonctionne sur plusieurs tronçons, il vous suffit d'ajuster la configuration de votre client sur chaque système intermédiaire afin que le transfert d'agent.
Cela pourrait être aussi simple que de vous assurer que
/etc/ssh/ssh_config
cela est configuré. Mais si vous avez des~/.ssh/config
configurations par client, vous devrez peut-être également ajuster ces paramètres.Vous pouvez voir si le transfert d'agent s'est produit ou s'il y a eu une erreur si vous ajoutez simplement l'
-v
option.Vérifiez également que vous disposez d'un ensemble de variables d'environnement valide.
la source
ssh-add -l
pour répertorier les clés auxquelles ssh pense pouvoir accéder via votre agent. Assurez-vous de le transmettre à chaque connexion!Requesting authentication agent forwarding.
dans votre sortie de débogage. Si vous avez essayé via.bash_profile
de démarrer ssh-agent, supprimez-le de là, sinon votre agent redémarrera sans aucune identité.