J'ai créé un nouveau compte utilisateur pour un ami sur Kubuntu 12.04. Quand il utilise ssh
il obtient cette erreur :
Impossible d'ouvrir une connexion à votre agent d'authentification
Nous exécutons ssh
dans certains scripts bash.
Après avoir examiné la grande variété de choses qui peuvent conduire à cette erreur, je suis tombé sur cette solution :
$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/some_id_rsa
Ensuite, il peut exécuter le ssh
commandes (et scripts bash) comme prévu.
Avant d'exécuter ces deux commandes, les variables env ne sont pas définies dans un terminal :
$ echo $SSH_AGENT_PID
$ echo $SSH_AUTH_SOCK
$
Après avoir exécuté les commandes, les variables env sont définies comme prévu. Cependant, ils ne restent pas définis (par exemple, dans un shell différent ou après le redémarrage).
Je veux savoir comment configurer son ordinateur pour qu'il n'ait pas à exécuter ces deux commandes pour définir les variables env. Je n'ai pas besoin de les exécuter sur mon ordinateur (jamais). Jusqu'à présent, je ne vois pas ce qui est différent entre nos machines.
Je vois cette information dans la page de manuel, mais elle ne me dit pas comment Ubuntu configure automatiquement l'agent automatiquement ou ce qui se passe sur la machine de mon ami pour que cela ne fonctionne pas pour lui.
Il existe deux manières principales de configurer un agent :la première est que
l'agent lance une nouvelle sous-commande dans laquelle certaines variables d'environnement sont
exportées, par exemple ssh-agent xterm &. La seconde est que l'agent imprime les
commandes shell nécessaires (la syntaxe sh(1) ou csh(1) peut être générée)
qui peuvent être évaluées dans le shell appelant, par exemple evalssh-agent -s
pour
les shells de type Bourne tels que sh(1) ou ksh(1) et evalssh-agent -c
pour
csh(1) et dérivés.
Après avoir installé acct
et redémarrage, ceci est la sortie de lastcomm
:
ssh-agent F newuser __ 0.12 secs Wed Aug 7 11:02
ssh-agent F newuser __ 0.00 secs Wed Aug 7 20:34
ssh-agent F newuser __ 0.02 secs Wed Aug 7 20:02
ssh-agent F newuser __ 0.01 secs Thu Aug 8 12:39
ssh-agent F newuser __ 0.02 secs Thu Aug 8 07:45
À partir de la page de manuel :
F — commande exécutée après un fork mais sans exec suivant
Je ne sais pas si c'est significatif.
Réponse acceptée :
Vous avez mentionné que votre utilisateur est ssh
se connecter, ne pas se connecter localement. Ainsi, le use-ssh-agent
dans /etc/X11/Xsession.options
est un faux-fuyant :il ne sera pas exécuté sur les sessions SSH, uniquement lors de la connexion locale à un bureau graphique X11 (ou en utilisant une session X11 virtuelle comme sur VNC ou RDP).
Au lieu de cela, vous devriez vérifier si libpam-ssh
est installé sur l'un ou l'autre système. Il peut être configuré pour authentifier un utilisateur à l'aide de phrases de passe de clé privée SSH, mais cela est facultatif et vous devrez placer spécifiquement la clé dans ~/.ssh/login-keys.d/
pour cette fonctionnalité.
Son autre fonctionnalité, cependant, est de démarrer automatiquement un agent SSH sur n'importe quelle session de connexion et d'ajouter automatiquement des clés privées SSH à l'agent si leur phrase de passe est la même que le mot de passe de connexion de l'utilisateur. Je pense que cela pourrait être la cause du comportement différent entre vos systèmes.