O Agente SSH perde identidade enquanto reinicia a máquina

7

Depois de criar as chaves com o nome id_rsa no seu local padrão. Estou adicionando identidade ao agente SSH com o comando ssh-add ~/.ssh/id_rsa , está adicionando com sucesso.

Eu posso usar o SSH sem digitar a senha da chave, pois ela já está com o Agente SSH.

Mas , quando eu reiniciar a máquina ou o servidor e, em seguida, verificar a identidade com o comando ssh-add -L Estou recebendo uma mensagem como The agent has no identities .

Isso significa que quando reiniciamos a máquina, o agente perdeu a identidade? Isso é um comportamento normal ou algo que sinto falta aqui?

Por favor me guie, eu não estou muito familiarizado com SSH.

    
por Niks 05.08.2015 / 10:55

3 respostas

11

É normal. A finalidade de um agente de chave é apenas manter as chaves descriptografadas na memória , mas nunca as gravará no disco. (Isso derrotaria o propósito - por que não apenas desproteger a chave principal?)

Portanto, as chaves devem ser desbloqueadas em cada login, e você precisa automatizar isso - no Linux, usar pam_ssh é uma opção; automaticamente usa sua senha do sistema operacional para desbloquear o agente. Outro módulo similar é pam_envoy , que é um pouco mais confiável (mas requer systemd).

Ambos os módulos iniciarão o próprio agente e carregarão as chaves automaticamente.

    
por 05.08.2015 / 11:29
3

Tente fazer isso com seu ~ / .bashrc :

if [ ! -S ~/.ssh/id_rsa ]; then
  eval 'ssh-agent'
  ln -sf "$SSH_AUTH_SOCK" ~/.ssh/id_rsa
  ssh-add
fi
export SSH_AUTH_SOCK=~/.ssh/id_rsa

Isso só deve solicitar a senha quando você fizer o login.

    
por 05.08.2015 / 11:18
2

No OS X, o ssh-add tem um sinalizador especial para se conectar ao Keychain, se você decidir armazenar sua chave privada lá.

Basta executar ssh-add -K ~/.ssh/id_rsa .

Acredito que isso responda à sua pergunta de maneira mais completa. Este flag específico do OS X é difícil de encontrar, mas está funcionando desde pelo menos o OS X Leopard.

    
por 14.01.2016 / 18:38