Como posso adicionar permanentemente minha chave privada SSH ao Keychain para que fique automaticamente disponível para o ssh?

Parece que ssh-add -K ~/.ssh/id_rsa carregará sua chave, mas solicitará a senha sempre que você reiniciar.

Estou procurando uma solução que não exija que eu insira novamente a senha da chave entre os logins.

Comentários

  • Pode você fala um pouco mais sobre quando o prompt de senha surge para você? Eu pergunto porque tenho uma chave ssh para um servidor remoto, que garanto que não é igual à minha senha de login do Mac nem nada, e não ' não precisei entrar no senha para a chave ssh por anos . Posso simplesmente abrir um terminal, digite " ssh < servidor > ", e eu ' m lá. Acho que primeiro configurei essa chave no OSX 10.5. id_dsa, mas eu não ' acho que isso deveria importar.
  • Minha chave id_rsa contém uma senha.
  • Também tenho o problema de ter resolvido isso há tanto tempo que não consigo ' não lembrar exatamente o que fiz. Mas eu acho que a ideia é não executar ssh-add, mas apenas executar ssh diretamente. Você deve obter uma janela que aparecerá como a frase secreta da chave e com uma caixa de seleção para permitir que você armazene-a em seu chaveiro.
  • @Sorin – o meu também! Tive de entrar uma vez, há muito tempo, e o Mac o salvou para mim desde então. Esperançosamente, o conselho de Harald ' ajudará.
  • Você quer dizer a senha do Keychain (ou seja, sua senha de login) ou a chave ' frase-senha? Se for ' o último, suas senhas definitivamente armazenadas no Keychain? Você pode verificar isso abrindo o Acesso às Chaves e procurando por ele nas chaves de login.

Resposta

No OSX , o cliente ssh-add nativo tem um argumento especial para salvar a senha longa da chave privada no keychain OSX, o que significa que seu login normal irá desbloqueá-lo para uso com ssh. No OSX Sierra e mais tarde, você também precisa configurar o SSH para sempre usar as chaves (veja a Etapa 2 abaixo).

Alternativamente, você pode usar uma chave sem uma senha longa, mas se preferir a segurança que é certamente aceitável com este fluxo de trabalho.

Etapa 1 – Armazene a chave no chaveiro

Faça isso apenas uma vez:

ssh-add -K ~/.ssh/[your-private-key] 

Digite sua senha de acesso e não será solicitada novamente.

(Se você estiver em uma versão anterior ao Sierra do OSX, está pronto, a Etapa 2 não é necessária.)

Etapa 2 – Configurar SSH para sempre usar as chaves

Parece que a OSX Sierra removeu o comportamento conveniente de persistir suas chaves entre logins, e a atualização para ssh não usa mais as chaves por padrão. Por isso, você receberá uma solicitação para inserir a senha longa de uma chave após a atualização e novamente após cada reinicialização.

A solução é bastante simples e é descrita em este comentário do tópico do github . Veja como você configura:

  1. Certifique-se de ter concluído a Etapa 1 acima para armazenar a chave no chaveiro.

  2. Se você ainda não “t criou um arquivo ~/.ssh/config. Em outras palavras, no diretório .ssh em seu diretório inicial, faça um arquivo chamado config.

  3. Nesse arquivo .ssh/config, adicione as seguintes linhas :

     Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa 

    Altere ~/.ssh/id_rsa para o nome do arquivo real de sua chave privada. Se você tiver outras chaves privadas em seu ~/.ssh diretório, também adicione uma linha IdentityFile para cada um deles. Por exemplo, tenho uma linha adicional que diz IdentityFile ~/.ssh/id_ed25519 para uma segunda chave privada.

    O UseKeychain yes é a parte da chave, que diz ao SSH para procurar a chave no seu keychain OSX senha longa.

  4. É isso! Na próxima vez que você carregar qualquer conexão ssh, ele tentará as chaves privadas que você especificou e procurará sua senha no keychain OSX. Não é necessário digitar a senha.

Comentários

  • @Poulsbo & @Abram – veja minha atualização, Sierra mudou o comportamento automático e agora você tem que executar ssh-add -A manualmente para carregar suas chaves salvas. Algumas soluções possíveis mencionadas acima.
  • @trisweb Obrigado pela dica. joshbuchea ' s para modificar o arquivo .ssh/config parece promissora! Consulte github.com/lionheart/openradar-mirror/issues/…
  • Funciona muito bem!No meu caso, precisei usar a sinalização A além da K para adicionar minhas chaves ao keychain e registrar a senha em isso (ssh-add -AK ~/.ssh/[your-private-key]). Obrigado!
  • Mesmo com a opção usekeychain, ainda acho que meu keychain vai derrubar a chave .ssh / id_rsa na reinicialização.
  • Fiz exatamente o mesmo e meu Mac ainda descarta o na reinicialização.

Resposta

Eu tive um problema semelhante, em que estava sendo perguntado todas as vezes para minha senha de chave de pub. Por sugestão do usuário “trisweb” acima, ativei essas opções para ~/.ssh/config:

Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa 

Mas ainda perguntava toda vez que eu queria usar o ssh. Por fim, ativei ssh -v e encontrei esta linha de depuração:

debug1: key_load_private: incorrect passphrase supplied to decrypt private key 

Em seguida, abri meu chaveiro em “Acesso às Chaves .app “, encontrou a chave chamada” SSH: /Users/username/.ssh/id_rsa “e a abriu. Cliquei em “Mostrar senha” para revelar a senha e de fato descobri que a frase-senha no chaveiro era uma frase-senha antiga. Eu atualizei a senha no Keychain Access e agora funciona sem senha.

Eu também poderia ter atualizado a senha com esta frase:

ssh-keygen -p -f ~/.ssh/id_rsa 

Comentários

  • No meu Mac a senha é salva na categoria “senha” da rede “iCloud”. Achei que fosse na cadeia de “login”.

Resposta

Para todos onde o acima não funcionou , meu problema parece ter sido porque eu estava duplicando o UseKeychain yes & AddKeysToAgent yes em todos perfis / atalhos de chave SSH. Atualizei meu ~/.ssh/config arquivo para declará-los apenas uma vez e agora todos carregam no login sem solicitar senhas na inicialização, por exemplo:

Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/foo IdentityFile ~/.ssh/bar Host foo HostName foo.com User fooUser IdentityFile ~/.ssh/foo Host bar HostName bar.com User barUser IdentityFile ~/.ssh/bar 

Comentários

  • Eu recomendaria Host * seguir regras de host específicas. Consulte man ssh_config para obter detalhes.

Resposta

Além disso, em macOS Sierra e HighSierra (não sei sobre as versões anteriores), a execução de ssh-add -A fará com que o agente carregue todas as chaves cujas senhas estão armazenadas no Keychain … Muito útil

Resposta

Adicione a chave pública em:

.ssh/known_hosts 

Pública a chave geralmente está ativada:

/home/user/.ssh/id_rsa.pub 

Espero que ajude

Comentários

  • Acho que significa que authorized_keys
  • De qualquer forma, isso não ' não funciona se você tiver mais de uma chave!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *