¿Qué hace exactamente ssh-add?

15

Recientemente reinstalé mi computadora portátil y descubrí que 'git clone' no estaba funcionando. Constantemente recibía Permission denied (publickey).errores.

La solución está documentada en la página de problemas de SSH de GitHub : úsela ssh-addpara informar a SSH sobre la clave que quiero usar para autenticarme en GitHub.

Mi pregunta es: debajo del capó, ¿qué hace ssh-addrealmente?

He tenido la intención de ampliar mi comprensión de SSH por un tiempo, y esto parece una buena excusa para comenzar :-)

Duncan Bayne
fuente

Respuestas:

21

ssh-addagrega identidades de clave privada (de su ~/.sshdirectorio) al agente de autenticación ( ssh-agent), de modo que el agente ssh pueda encargarse de la autenticación por usted y no tenga que escribir las contraseñas en el terminal.

Peter John Acklam
fuente
Seré sincero, esto me confundió por un tiempo. Pensé que el cliente ssh siempre usaba la clave en su ~/.sshdirectorio. ¿Algunas distribuciones hacen el equivalente de forma ssh-addautomática? Tal vez por eso estaba confundido?
blong
44
sshusa la clave en el ~/.sshdirectorio, pero si la clave está protegida por una frase de contraseña, esta debe ingresarse en algún momento. Si usa ssh-agenty ssh-add, escribe esta frase de contraseña una vez. De lo contrario, debe escribir la frase de contraseña cada vez que la use ssh. Tenga en cuenta que si la clave no está protegida con contraseña, puede usarla sshsin que se le pida una frase de contraseña.
Peter John Acklam
Puede haber varias claves ssh ~/.sshy esta podría ser la cosa más útil, ver en SO y documentos de bitbucket
Frank Nocke
0

Según este artículo en github , en algún momento en algunas distribuciones de Linux, incluso después de configurar todo correctamente, aparece este error:

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

Y deberías correr ssh-addpara resolver el problema.

Sadegh
fuente