O comando ssh-add não adiciona minha identidade ao ssh-agent

20

Acabei de instalar o ubuntu 13.10 e estava prestes a adicionar minha identidade ao meu ssh-agent, então abri um terminal e fiz isso

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:~$ 

alguma ideia?

bjorgvin
fonte

Respostas:

26

De man ssh-add:

O ssh-add adiciona identidades de chave privada ao agente de autenticação, ssh-agent (1). Quando executado sem argumentos, ele adiciona os arquivos ~ / .ssh / id_rsa, ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa e ~ / .ssh / identity. [...]

Os arquivos de identidade não devem ser legíveis por ninguém, exceto pelo usuário. Observe que o ssh-add ignora os arquivos de identidade se eles estiverem acessíveis por outras pessoas.

Portanto, por causa do The agent has no identities.erro, você provavelmente não possui esses arquivos ou talvez esses arquivos possam ser acessados ​​por outras pessoas. Você pode verificá-las usando o seguinte comando:

ls -l ~/.ssh

Além disso, depois de executar o ssh-addcomando, execute echo $?para ver o status do erro do comando anterior. Se o status de saída retornou 0, o comando foi executado com sucesso. Se o status de saída retornou um valor diferente de zero, o comando falhou ao executar.

Veja man ssh-addpara mais informações.

Radu Rădeanu
fonte
verdade, eu não tenho esses arquivos e o valor de saída ssh-addera 1, mas não 0. obviamente há algum problema com minhas permissões, pois os arquivos não são criados. Alguma idéia de como eu poderia consertar isso? o diretório ~/.sshexiste (está vazio), mas ele não aparece quando eu façols -l
Björgvin
Eu executei este comando ssh-keygen -q -t rsa -N 'password' -f ~/.ssh/id_rsapara que o homem ssh-keygen ajudasse, obrigado.
Björgvin
1
Isso deu a dica de importação na direção certa para mim. Eu tinha várias chaves ssh e primeiro tive que adicionar a chave adequada usando ssh-add <keyname>. Então funcionou como um charme. thx
paulroho
3
Por alguma razão, não tive saída ao executar ssh-addapós digitar a senha (estava falhando de acordo com a $?repetição 1. Tentei chmod 600 ~/.ssh/id_rsa* sem sorte. Gerei uma nova chave do zero ssh-keygene funcionou. Triste, mas pelo menos é ok agora (A chave não foi gerada usando ssh-keygen -t rsa -b 4096 -C "[email protected]", eu só correu ssh-keygenem vez desta vez).
GabLeRoux
1
Eu tive que fazer o seguinte nesta ordem: (se necessário, gere uma nova chave ssh e adicione a chave .pub ao github), cd ~/.ssh && ls -lahpara ver as permissões de leitura / gravação na pasta .ssh, altere todas as chaves (s ) chmod 400 myKey, ssh-add **ABSOLUTE**pathToKey se você não adicionar o caminho ABSOLUTE , ele não funcionará. Em seguida, teste-o comssh -vT [email protected]
jungledev 22/11
3

Além das considerações acima, descobri que se você estiver usando um shell alternativo, poderá ser necessário configurá-lo para carregar o ssh-agent. Por exemplo, em Zsh, deve-se adicionar ssh-agenta pluginsno .zshrc.

Este método funciona muito bem no Ubuntu 17.10 com o mais recente Zsh

Outros descobriram que, com as id_ed25519chaves, rsaestava trabalhando sem um plugin. Depois de adicionar ssh-agenta ~/.zshrc, reinicie o shell com exec "$SHELL"e execute:ssh-add ~/.ssh/id_ed25519

Enter passphrase for ~/.ssh/id_ed25519: 
Identity added: ~/.ssh/id_ed25519 (user@host)
Tohuw
fonte
Adicione o ssh-agente do plugin para .zshrc via as instruções aqui: github.com/robbyrussell/oh-my-zsh/tree/master/plugins/ssh-agent
Kariem