Depois de criar chaves com o nome id_rsa
no local padrão. Estou adicionando identidade ao agente SSH com o comando ssh-add ~/.ssh/id_rsa
Ele está sendo adicionado com sucesso.
Posso SSH sem inserir a senha da chave, pois já está com o SSH Agent.
Mas , quando eu reinicio a máquina ou servidor e, em seguida, verifico 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? Esse comportamento é normal ou algo que estou perdendo aqui?
Por favor, me guie, não estou muito familiarizado com o SSH.
Respostas:
É normal. O objetivo de um agente de chaves é apenas manter chaves descriptografadas na memória , mas nunca as gravará em disco. (Isso anularia o objetivo - 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,
pam_ssh
é uma opção; ele usa automaticamente sua senha do sistema operacional para desbloquear o agente. Outro módulo semelhante é opam_envoy
que é um pouco mais confiável (mas requer o systemd).Ambos os módulos iniciarão o próprio agente e carregarão as chaves automaticamente.
fonte
$SSH_AUTH_SOCK
, estou obtendo resultado como::-bash: /tmp/ssh-gT43vE99vk/agent.511
Permissão negada Estou confuso aqui .. aguarde o encaminhamento do meu agente funcionando ou não .. você pode orientar?echo $SSH_AUTH_SOCK
para imprimir seu valor.Tente fazer isso no seu ~ / .bashrc :
Isso deve solicitar a senha apenas após o login.
fonte
No OS X, o ssh-add possui um sinalizador especial para conectar-se ao Keychain se você decidir armazenar sua chave privada lá.
Apenas corra
ssh-add -K ~/.ssh/id_rsa
.Acredito que isso responda mais plenamente à sua pergunta. É difícil encontrar essa flag específica para o OS X, mas está funcionando desde pelo menos o OS X Leopard.
fonte
ssh-add -A
que adicionará todas as chaves no chaveiro. Além disso, crie um~/.ssh/config
e adicioneUseKeychain yes
para que o macOS sempre preserve sua chave, conforme descrito aqui: unix.stackexchange.com/questions/140075/…Esta solução é útil se suas chaves ssh estiverem protegidas por senha.
O problema com todas as respostas acima é que, se a sua chave privada é protegida senha, cada vez que você lançar um novo terminal e tentar usar a chave privada, você tem que digitar a senha e você vai acabar sendo executado várias cópias do
ssh-agent
no memória. A solução é adicionar o seguinte no seu~/.bashrc
ou~/.zshrc
:Isso solicitará a senha da sua chave privada ssh apenas uma vez quando você iniciar um terminal. A abertura subsequente de novas sessões de terminal (ou visões tmux) reutilizará o ssh-agent criado pelo snippet acima.
Referência
fonte