Costumava lembrar a senha, mas agora está me perguntando a cada vez.
Eu li que preciso regenerar a chave pública com este comando, o que fiz:
ssh-keygen -y -f id_rsa > id_rsa.pub
mas não consertou nada.
Como posso fazer o macOS lembrar minha senha novamente?
ssh
módulo ativadozpretzorc
. É desnecessário no macOS e, se ativado, ele solicitará sua senha mesmo após você ter adicionadoUseKeychain
.ssh -v ...
para ver se tem alguma informação de depuração útil ...Respostas:
Na última versão do macOS (10.12.2), isso é fácil de corrigir. Basta editar o seu
~/.ssh/config
e ativar aUseKeychain
opção:Não há necessidade de mudar mais nada. Agora tudo funciona da maneira que costumava funcionar antes das atualizações mais recentes. Você não precisa adicionar chaves para
ssh-agent
.Edit: você ainda pode precisar digitar sua senha uma vez. Se você não sabe, siga estas instruções para revelá-lo.
fonte
Host *
bloco deve (quase) sempre ser colocado na parte inferior do seu~/.ssh/config
arquivo. Quandossh
está procurando por configurações, usa o primeiro valor encontrado. Assim, ao colocar o bloco de curingas no final, ele age como um conjunto de padrões; você pode substituir as configurações de hosts específicos, especificando-os anteriormente no arquivo.Host *
título. Basta anexar a linha únicaUseKeychain yes
na parte superior do seu,.ssh/config
se desejar que isso se aplique a todos os hosts.Eu tive o mesmo problema. O keychain do MacOS Sierra continua pedindo a frase secreta. Seu id_rsa deve ser criptografado com uma frase secreta para segurança. Em seguida, tente adicioná-lo ao chaveiro
ssh-add -K ~/.ssh/id_rsa
Se a chave estiver em outra pasta
~/.ssh
, substitua-a pela pasta correta.Chaveiro agora sabe sua chave ssh e, espero, tudo funciona agora (o meu fez)
fonte
ssh-add
com a-A
opção procurará no keychain do MacOS qualquer senha para as identidades em questão. Eu acredito que ele irá perguntar se as senhas não estão no chaveiro.Isso corrigiu meu problema semelhante:
Isso armazena senhas em seu chaveiro.
Atualização (obrigado @EasyCo): Isso funciona, mas não persiste entre as reinicializações. @ solução de Jukka-Suomela desta página não trabalhar nas reinicializações. Você pode encontrar essa resposta aqui:
https://superuser.com/a/1158050/234685
fonte
Eu só tive que digitar a senha correta uma vez e ela começou a funcionar. O problema era que eu não lembrava da minha senha SSH original, mas eu a recuperei seguindo estes passos do Github:
fonte
Nenhuma das soluções acima funcionou após a instalação do Sierra sobre o El Capitan em um novo MacBook Pro. O Sierra by design não salva chaves SSH no keychain.
Duas soluções funcionaram para mim. Uma é adicionar o comando
ssh-add -A &> /dev/null
a ~ / .bash_profile. Toda vez que você abrir o terminal, este comando será executado (a&> /dev/null
parte envia a saída do comando o arquivo / dev / null).Uma solução mais complicada, mas ligeiramente mais tênue, é criar um plist com o comando que é executado toda vez que o SO é inicializado, como sugerido em Salvando chaves SSH no macOS Sierra keychain . Isso envolve o uso do Xcode para criar o arquivo.
fonte
Uma correção é adicionar o seguinte ao seu arquivo ~ / .ssh / config:
Retirado de: https://www.reddit.com/r/osx/comments/52zn5r/difficulties_with_sshagent_in_macos_sierra/ Veja também: https://apple.stackexchange.com/a/264974/3810
fonte
Bad configuration option: usekeychain
erro que recebo com UseKeychain (no entanto, é capitalizado). Mas eu era capaz de fazê-lo funcionar, removendo apenas essa linha e deixando AddKeysToAgent e IdentityFile (você ainda tem que digitar a senha na primeira vez). Isso é com o macOS Sierra 10.12.6.which ssh
para garantir que você está usando/usr/bin/ssh
e não uma versão do Fink ou MacPorts, que estaria sob algo como/usr/local/bin/ssh
ou/opt/local/bin/ssh
Esta manhã, tive o mesmo problema que você depois de atualizar para a Sierra. No meu caso, o
id_rsa
arquivo foi criptografado e depois de descriptografar, estava funcionando como um encanto.id_rsa
arquivo está criptografado com o seguinte comando:cat ~/.ssh/id_rsa | head -2
Proc-Type: 4,ENCRYPTED
, é criptografado e você pode tentar descriptografá-loid_rsa
arquivo original ! Use o comandocp ~/.ssh/id_rsa ~/.ssh/id_rsa.bak
openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa.decrypted
rm ~/.ssh/id_rsa
) e substitua-a por uma descriptografada:mv ~/.ssh/id_rsa.decrypted ~/.ssh/id_rsa
Após essas etapas, você poderá usar o ssh novamente.
fonte
Tentei várias respostas aqui, mas ainda estava tendo problemas com a passagem de chaves remotas (por exemplo, ao usar o capistrano). Para resolvê-lo, eu li a technote da apple e fiz este meu arquivo de configuração. Não mais pedindo minha senha!
https://developer.apple.com/library/content/technotes/tn2449/_index.html
fonte
Eu tive esse problema também ao tentar implantar algum código usando o Capistrano . Muito frustrante. Aqui estão dois métodos que conheço para lidar com esse problema.
Método 1: Adicione todas as chaves conhecidas ao agente SSH.
Portanto, uma solução que encontrei é executar
ssh-add
com a-A
opção - que adiciona todas as identidades conhecidas ao agente SSH usando as frases secretas armazenadas em seu conjunto de chaves - assim:Agora isso funciona, mas não vai persistir durante as reinicializações. Então, se você nunca quer se preocupar com isso novamente, basta abrir o
~/.bash_profile
arquivo do seu usuário assim:E adicione essa linha ao final:
Agora, quando você abrir uma nova janela do Terminal, tudo deve ser bom!
Método 2: Adicione somente chaves SSH que estão no keychain ao agente.
Portanto, embora a
ssh-add -A
opção deva funcionar na maioria dos casos básicos, encontrei um problema recentemente em que tinha 6-7 caixas Vagrant (que usam chaves SSH / identidades para acesso) configuradas em uma máquina sobre as mais comunsid_rsa.pub
no lugar.Para encurtar a história, acabei sendo bloqueado de um servidor remoto devido a muitas tentativas mal-sucedidas com base em identidades / chaves SSH, pois o acesso ao servidor era baseado em uma senha e as chaves / identidades SSH são chaves / identidades SSH. Assim, o agente SSH tentou todas as minhas chaves SSH, falhou e eu não consegui nem chegar ao prompt da senha.
O problema é que
ssh-add -A
apenas adicionará arbitrariamente cada chave / identidade SSH ao agente, mesmo que não seja necessário fazê-lo; como no caso das caixas Vagrant.Minha solução depois de muitos testes foi a seguinte.
Primeiro, se você tiver mais identidades / chaves SSH adicionadas ao seu agente do que o necessário, como mostrado
ssh-add -l
, elimine todas elas do agente da seguinte forma:Feito isso, inicie o agente SSH como um processo em segundo plano como:
Agora, fica estranho e não tenho certeza do porquê. Em alguns casos, você pode adicionar especificamente a
~/.ssh/id_rsa.pub
chave / identidade ao agente da seguinte forma:Digite sua frase-senha, clique em Returne você deve estar pronto para ir.
Mas em outros casos, basta executar isso para obter a chave / identidade adicionada:
Se tudo isso funcionar, digite
ssh-add -l
e você deverá ver uma única chave / identidade SSH listada.Tudo bom? Agora abra seu
.bash_profile
:E adicione esta linha ao fundo; comentar ou remover a
-A
versão se você tiver isso no lugar:Isso permitirá que a chave / identidade SSH seja recarregada no agente SSH em cada inicialização / reinicialização.
ATUALIZAÇÃO: A Apple agora adicionou uma
UseKeychain
opção às opções de configuração de SSH abertas e também considerassh-add -A
uma solução.A partir do macOS Sierra 10.12.2, a Apple (eu suponho) adicionou uma
UseKeychain
opção de configuração para as configurações do SSH. Verificar a página do manual (viaman ssh_config
) mostra as seguintes informações:Qual se resume a Apple vendo a solução como adicionar
ssh-add -A
ao seu.bash_profile
conforme explicado neste ticket Open Radar ou adicionandoUseKeychain
como uma das opções em um por usuário~/.ssh/config
.fonte
A resposta de Jukka Suomela está correta, mas se você está usando o
openssh
instaladohomebrew
, então você também precisa desinstalá-lo com:... para voltar ao padrão do sistema openssh, porque o homebrew não suporta
UseKeychain
entrada ssh config.fonte
Eu tentei todas as soluções sugeridas aqui, mas não tenho keychain configurado no meu Mac.
Adicionando a seguinte linha no
.ssh/config
arquivo superior em ambos os locais e a máquina remota funcionou para mim.fonte
Você precisa de um
.plist
arquivo adicionado para~/Library/LaunchAgents/
ser executadossh-add -A
em todas as inicializações do macOS.Existe um único comando que faz isso (do SSH-keys-in-macOS-Sierra-keychain ) que é:
fonte