Configuration supplémentaire requise pour le transfert de l'agent ssh?

21

Ce guide explique très bien le fonctionnement de ssh-agent sur plusieurs systèmes. J'aimerais configurer le transfert tel qu'il est dans le dernier ensemble de diagrammes, mais j'ai du mal à suivre les étapes requises pour le faire.

Pour certaines machines de mon réseau, je peux passer de A à B, puis de B à C, sans jamais entrer de mot de passe cert. D'autres machines, cependant, donnent un "Impossible d'ouvrir une connexion à votre agent d'authentification" (parfois!), Puis ne transmettent pas mes informations d'authentification. SSHing à partir de l'une de ces machines vers une autre boîte sur le réseau invite à nouveau mon mot de passe de clé privée.

Je n'ai pas construit ces machines, mais je peux en administrer certaines. Je ne sais pas exactement quelle est la différence entre boxen qui fonctionne et ceux qui ne fonctionnent pas - pourrait être un problème de pare-feu, une configuration ssh / ssh-agent / sshd, n'importe quoi, et je ne vois aucune étape- des guides pas à pas spécifiques au transfert flottant autour du net. J'ai juste besoin de savoir par où commencer à chasser ce problème.

Coderer
la source

Réponses:

23

Le transfert d'agent Ssh doit être autorisé sur le client ( ForwardAgentoption dans ~/.ssh/config) et sur le serveur ( AllowAgentForwardingoption dans sshd_config). Il y a de fortes chances que vos machines aient des paramètres par défaut différents pour l'une de ces options ou les deux.

Si vous allez A-> B-> C, le transfert n'est pas nécessaire à l'étape B-> C (sauf si vous allez ensuite aller C-> D bien sûr).

Lorsque vous êtes connecté à B, vérifiez que la variable d'environnement SSH_AUTH_SOCKest définie. Sa valeur est de savoir sshcomment contacter l'agent.

Il n'y a aucune bonne raison d'interdire le transfert d'agent sur le serveur, étant donné que le transfert d'agent rend le client vulnérable au serveur et non l'inverse, et que vous pouvez en principe configurer manuellement le transfert d'agent (bien qu'il n'y aurait pas tant de points depuis la difficulté de le mettre en place irait à l'encontre de la commodité du transfert d'agent).

Gilles 'SO- arrête d'être méchant'
la source
La bonne nouvelle: merci de m'avoir pointé vers la bonne touche à rechercher! La mauvaise nouvelle: il s'agit apparemment d' un bogue connu dans openssh-server. Il semble avoir été corrigé, à un moment donné, mais je ne pense pas que j'exécute une version suffisamment actuelle - j'obtiens «Mauvaise option de configuration: AllowAgentForwarding» lorsque j'essaye de l'activer. On dirait qu'il est hors tension de mettre à jour mon chargement de logiciel (encore une fois ...)
Coderer
1
@Coderer: Étant donné que le transfert d'agent est activé par défaut, il devrait suffire de supprimer n'importe quelle AllowAgentForwardingligne sshd_config.
Gilles 'SO- arrête d'être méchant'
@Gilles Si quelqu'un voulait configurer manuellement le transfert d'agent pour une session existante, comment procéderait-il? Il s'agit d'un réel besoin avec les scripts de provisioning utilisés avec des machines éphémères comme les AMI fournies avec AllowAgentForwardingdésactivé.
Andrew De Andrade
@AndrewDeAndrade Pour une session existante, vous avez du pain sur la planche. Si vous vouliez configurer le transfert d'agent même s'il est désactivé sur le serveur, vous devez transférer un socket Unix sur TCP; cela devrait être possible avec netcat ou socat des deux côtés.
Gilles 'SO- arrête d'être méchant'
@Gilles C'est la conclusion que je suis venue aussi. J'ai découvert que vous pouvez également utiliser Spiped, qui est plus sécurisé mais nécessite un échange de clés symétrique, mais est plus simple après cela.
Andrew De Andrade
14

Bien que vous ayez déjà la bonne réponse par @Gilles ci-dessus, je voulais souligner qu'elle AllowAgentForwardingn'est prise en charge que dans OpenSSH 5.1.

Les serveurs OpenSSH avant 5.1, d'après ce que j'ai vu dans ma boîte RHEL 4u5, permettent le transfert d'agent par défaut. Donc, si votre serveur est antérieur à 5.1 et que le transfert d'agent ne fonctionne pas, le problème est probablement sur le client ssh. Étant donné que le transfert semble fonctionner pour certaines machines pour vous, il semble que la /etc/ssh/ssh_configconfiguration soit correcte. Vérifiez ~/.ssh/configs'il existe une exception pour désactiver le transfert d'agent pour les zones concernées.

Réf: http://www.openssh.org/txt/release-5.1

Sandip Bhattacharya
la source
salut Sandip, avez-vous une idée à ce sujet? superuser.com/questions/958978/…
Niks