O que exatamente o ssh-add faz?

15

Recentemente, reinstalei meu laptop e descobri que o 'git clone' não estava funcionando. Eu estava constantemente recebendo Permission denied (publickey).erros.

A correção está documentada na página de problemas de SSH do GitHub : use ssh-addpara informar ao SSH a chave que quero usar para autenticar no GitHub.

Minha pergunta é: sob o capô, o que ssh-addrealmente faz?

Eu pretendo expandir minha compreensão do SSH por um tempo, e isso parece uma boa desculpa para começar :-)

Duncan Bayne
fonte

Respostas:

21

ssh-addadiciona identidades de chave privada (do seu ~/.sshdiretório) ao agente de autenticação ( ssh-agent), para que o agente ssh possa cuidar da autenticação e você não tenha que digitar senhas no terminal.

Peter John Acklam
fonte
Serei honesto, isso me confundiu por um tempo. Eu pensei que o cliente ssh sempre usava a chave no seu ~/.sshdiretório. Algumas distribuições fazem o equivalente ssh-addautomaticamente? Talvez por isso eu estivesse confuso?
BLONG
4
sshusa a chave no ~/.sshdiretório, mas se a chave estiver protegida por uma senha, essa senha deverá ser inserida em algum momento. Se você usar ssh-agente ssh-add, digitar essa senha uma vez. Caso contrário, você deve digitar a senha sempre que usar ssh. Observe que, se a chave não estiver protegida por senha, você poderá usá-la sshsem ser solicitada uma senha.
Peter John Acklam
Pode haver várias chaves SSH ~/.sshe esta pode ser a coisa mais útil ter, consulte no SO e bitbucket docs
Frank Nocke
0

Com base neste artigo no github , em algum momento em algumas distribuições Linux, mesmo depois de configurar tudo corretamente, esse erro aparece:

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

E você deve executar ssh-addpara resolver o problema.

Sadegh
fonte