La commande ssh-add n'ajoute pas mon identité à ssh-agent

20

Je viens d'installer Ubuntu 13.10 et j'étais sur le point d'ajouter mon identité à mon agent ssh, donc j'ai ouvert un terminal et je l'ai fait

bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ ssh-add
bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ 

des idées?

bjorgvin
la source

Réponses:

26

De man ssh-add:

ssh-add ajoute des identités de clé privée à l'agent d'authentification, ssh-agent (1). Lorsqu'il est exécuté sans arguments, il ajoute les fichiers ~ / .ssh / id_rsa, ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa et ~ / .ssh / identity. [...]

Les fichiers d'identité ne doivent être lisibles par personne d'autre que l'utilisateur. Notez que ssh-add ignore les fichiers d'identité s'ils sont accessibles par d'autres.

Donc, en raison d'une The agent has no identities.erreur, vous n'avez probablement pas ces fichiers ou peut-être que ces fichiers sont accessibles par d'autres. Vous pouvez les vérifier à l'aide de la commande suivante:

ls -l ~/.ssh

En outre, après avoir exécuté la ssh-addcommande, exécutez echo $?pour voir l'état d'erreur de la commande précédente. Si l'état de sortie renvoyait 0, la commande a été exécutée avec succès. Si l'état de sortie renvoyait une valeur non nulle, la commande n'a pas pu s'exécuter.

Voir man ssh-addpour plus d'informations.

Radu Rădeanu
la source
vrai, je n'ai pas ces fichiers et la valeur de sortie de ssh-addétait 1 mais pas 0. il y a évidemment un problème avec mes autorisations car les fichiers ne sont pas créés. Une idée comment je pourrais résoudre ce problème? le répertoire ~/.sshexiste (est vide) mais il n'apparaît pas quand je le faisls -l
bjorgvin
J'ai exécuté cette commande, ssh-keygen -q -t rsa -N 'password' -f ~/.ssh/id_rsadonc man ssh-keygen a aidé, merci.
bjorgvin
1
Cela m'a donné un indice d'importation dans la bonne direction. J'avais plusieurs clés ssh et je devais d'abord ajouter la bonne clé en utilisant ssh-add <keyname>. Ensuite, cela a fonctionné comme un charme. thx
paulroho
3
Pour une raison quelconque, je n'avais aucune sortie lors de l'exécution ssh-addaprès avoir saisi la phrase secrète (cela échouait selon la $?réassurance 1. J'ai essayé de chmod 600 ~/.ssh/id_rsa* ne pas avoir de chance. J'ai généré une nouvelle clé à partir de zéro avec ssh-keygenpuis cela a fonctionné. Triste mais au moins c'est ok maintenant (La clé défaillante a été générée en utilisant ssh-keygen -t rsa -b 4096 -C "[email protected]", je n'ai couru qu'à la ssh-keygenplace cette fois).
GabLeRoux
1
J'ai dû faire ce qui suit dans cet ordre: (si nécessaire, générez une nouvelle clé ssh et assurez-vous d'ajouter la clé .pub à github), puis cd ~/.ssh && ls -lahpour voir les autorisations de lecture / écriture dans le dossier .ssh, changez toutes les clés (s ) avec chmod 400 myKeyalors ssh-add **ABSOLUTE**pathToKey si vous n'ajoutez pas le chemin ABSOLU , cela ne fonctionnera pas. Ensuite, testez-le avecssh -vT [email protected]
jungledev
3

En plus des considérations ci-dessus, j'ai trouvé que si vous utilisez un autre shell, vous devrez peut-être le configurer pour charger ssh-agent. Par exemple, dans zsh, il faut ajouter ssh-agentà pluginsen .zshrc.

Cette méthode fonctionne très bien sur Ubuntu 17.10 avec la dernière Zsh

D'autres ont constaté qu'avec des id_ed25519clés, rsafonctionnait sans plugin. Après avoir ajouté ssh-agentà ~/.zshrc, redémarrez le shell avec exec "$SHELL"et exécutez:ssh-add ~/.ssh/id_ed25519

Enter passphrase for ~/.ssh/id_ed25519: 
Identity added: ~/.ssh/id_ed25519 (user@host)
Tohuw
la source
Ajoutez le plugin ssh-agent à .zshrc via les instructions ici: github.com/robbyrussell/oh-my-zsh/tree/master/plugins/ssh-agent
Kariem