Que fait exactement ssh-add?

15

J'ai récemment réinstallé mon ordinateur portable et constaté que le «git clone» ne fonctionnait pas. Je recevais constamment des Permission denied (publickey).erreurs.

Le correctif est documenté sur la page des problèmes SSH de GitHub : utilisez ssh-addpour indiquer à SSH la clé que je veux utiliser pour m'authentifier sur GitHub.

Ma question est: sous le capot, que fait-on ssh-addréellement?

Je voulais élargir ma compréhension de SSH depuis un certain temps, et cela semble être une bonne excuse pour commencer :-)

Duncan Bayne
la source

Réponses:

21

ssh-addajoute des identités de clé privée (à partir de votre ~/.sshrépertoire) à l'agent d'authentification ( ssh-agent), afin que l'agent ssh puisse s'occuper de l'authentification pour vous et que vous n'ayez pas à taper de mots de passe sur le terminal.

Peter John Acklam
la source
Je vais être honnête, cela m'a dérouté pendant un moment. Je pensais que le client ssh utilisait toujours la clé dans votre ~/.sshrépertoire. Certaines distributions font-elles l'équivalent de ssh-addautomatiquement? C'est peut-être pour ça que j'étais confus?
blong
4
sshutilise la clé dans le ~/.sshrépertoire, mais si la clé est protégée par une phrase secrète, cette phrase secrète doit être entrée à un moment donné. Si vous utilisez ssh-agentet ssh-add, vous tapez cette phrase secrète une fois. Sinon, vous devez saisir la phrase secrète à chaque utilisation ssh. Notez que si la clé n'est pas protégée par un mot de passe, vous pouvez l'utiliser sshsans qu'on vous demande de phrase secrète.
Peter John Acklam
Il peut y avoir plusieurs clés ssh ~/.sshet cela pourrait être la chose la plus utile à avoir, voir sur les documents SO et bitbucket
Frank Nocke
0

Basé sur cet article dans github , parfois sur certaines distributions linux même après avoir tout configuré correctement, cette erreur apparaît:

Agent admitted failure to sign using the key.
debug1: No more authentication methods to try.
Permission denied (publickey).

Et vous devriez courir ssh-addpour résoudre le problème.

Sadegh
la source