Você pode falar um pouco mais sobre quando a solicitação de senha será exibida? Eu pergunto porque eu tenho uma chave ssh para um servidor remoto, o que garanto que você não é igual à minha senha de login do Mac nem nada, e não tenho que digitar a senha da chave ssh há anos . Eu posso simplesmente abrir um terminal, digitar "ssh <server>" e estou lá. Acho que primeiro configurei essa chave no OSX 10.5. id_dsa, mas não acho que isso importe.
Michael H.
Minha id_rsachave tem uma senha.
22612
Também tenho o problema que resolvi isso há tanto tempo que não me lembro exatamente o que fiz. Mas acho que a ideia é não correr ssh-add, mas correr sshdiretamente. Você deve abrir uma janela que será a frase secreta da chave e com uma caixa de seleção para permitir que você a armazene em seu chaveiro.
Harald Hanche-Olsen
1
@ Sorin - o mesmo acontece com o meu! Eu tive que entrar uma vez, há muito tempo, e o Mac salvou para mim desde então. Espero que o conselho de Harald ajude.
Michael H.
Você quer dizer a senha do chaveiro (ou seja, sua senha de login) ou a senha da chave? Nesse caso, suas senhas estão definitivamente armazenadas no Keychain? Você pode verificar isso abrindo o Acesso ao chaveiro e procurando no chaveiro de login.
Mathew Salão
Respostas:
687
No OSX, o ssh-addcliente nativo possui um argumento especial para salvar a senha da chave privada no conjunto de chaves OSX, o que significa que seu login normal a desbloqueará para uso com o ssh. No OSX Sierra e versões posteriores, você também precisa configurar o SSH para sempre usar o chaveiro (consulte a Etapa 2 abaixo).
Como alternativa, você pode usar uma chave sem uma senha, mas se preferir a segurança certamente aceitável com esse fluxo de trabalho.
Etapa 1 - Armazene a chave no chaveiro
Apenas faça isso uma vez:
ssh-add -K ~/.ssh/[your-private-key]
Digite sua senha de chave e você não será solicitado novamente.
(Se você está na versão pré-Sierra do OSX, está pronto, a Etapa 2 não é necessária.)
Etapa 2 - Configure o SSH para sempre usar o chaveiro
Parece que o OSX Sierra removeu o comportamento conveniente de persistir suas chaves entre logons, e a atualização para ssh não usa mais o chaveiro por padrão. Por esse motivo, você será solicitado a digitar a senha de uma chave após a atualização e novamente após cada reinicialização.
Mude ~/.ssh/id_rsapara o nome do arquivo real da sua chave privada. Se você tiver outras chaves privadas em seu ~.sshdiretório, adicione também uma IdentityFilelinha para cada uma delas. Por exemplo, eu tenho uma linha adicional que lê IdentityFile ~/.ssh/id_ed25519uma segunda chave privada.
Essa UseKeychain yesé a parte principal, que instrui o SSH a procurar no código-chave do OSX a senha da chave.
É isso aí! Na próxima vez que você carregar qualquer conexão ssh, ele tentará as chaves privadas que você especificou e procurará sua senha no chaveiro OSX. Não é necessário digitar a senha.
Isso quase funcionou para mim. Meu chaveiro de "login" já tinha o bloqueio automático desativado, então a resposta de Matthew Sanabria não se aplicou. O uso de ssh-add -K ...chaves adicionadas ao agente ssh sem solicitar uma senha, mas apenas para a sessão atual. Após uma reinicialização, tive que reemitir o comando.
Poulsbo
4
@Poulsbo & @Abram - veja minha atualização, o Sierra alterou o comportamento automático e agora você precisa executar ssh-add -Amanualmente para carregar o chaveiro salvo. Algumas soluções possíveis mencionadas acima.
@sorin, veja a resposta atualizada e deixe-me saber se você tem algum comentário. Obrigado!
trisweb
9
Funciona bem! No meu caso, eu precisava usar a Abandeira além Kdaquela para adicionar minhas chaves ao chaveiro e registrar a senha nele ( ssh-add -AK ~/.ssh/[your-private-key]). Obrigado!
precisa saber é o seguinte
22
Eu tive um problema semelhante, pois estava me perguntando TODA A VEZ a minha senha do pub-key.
Por sugestão do usuário "trisweb" acima, ativei essas opções em ~ / .ssh / config:
Você sempre solicita a senha, porque seu chaveiro de "login" está sendo bloqueado após inatividade e / ou suspensão ou, no caso, uma reinicialização. Existem duas maneiras de resolver isso para você.
Altere as configurações do seu chaveiro de "login". Supondo que sua chave ssh esteja armazenada no chaveiro "login".
Acesso ao chaveiro aberto
Destaque o chaveiro "login"
Clique com o botão direito do mouse ou com a opção "chave de login"
Desmarque as caixas de seleção "Bloquear após X minutos de inatividade" e "Bloquear ao dormir".
Observe que, ao chamar ssh-addde dentro do SSH, security unlock-keychaindeve ser chamado primeiro. Além disso, não tive que criar os diretórios para o -fparâmetro. Infelizmente, eu ainda tinha que ligar security unlocl-keychainem sessões SSH para acessar o chaveiro de login, que solicita a senha cada vez ...
Ohad Schneider
2
O ponto principal é ter uma senha na tecla. Duvido que a geração de uma nova chave SSH seja útil para a pergunta.
Grey
7
Além disso, no macOS Sierra e HighSierra (não sei sobre versões anteriores), a execução ssh-add -Afará com que o agente carregue todas as chaves cujas senhas estão armazenadas no Keychain ... Tão útil
Para todos os itens acima, o meu problema parece ter sido porque eu estava duplicando o UseKeychain yes& AddKeysToAgent yesem todos os perfis / atalhos das teclas ssh. Atualizei meu ~/.ssh/configarquivo para declará-los apenas uma vez e agora todos são carregados no logon 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
id_rsa
chave tem uma senha.ssh-add
, mas correrssh
diretamente. Você deve abrir uma janela que será a frase secreta da chave e com uma caixa de seleção para permitir que você a armazene em seu chaveiro.Respostas:
No OSX, o
ssh-add
cliente nativo possui um argumento especial para salvar a senha da chave privada no conjunto de chaves OSX, o que significa que seu login normal a desbloqueará para uso com o ssh. No OSX Sierra e versões posteriores, você também precisa configurar o SSH para sempre usar o chaveiro (consulte a Etapa 2 abaixo).Como alternativa, você pode usar uma chave sem uma senha, mas se preferir a segurança certamente aceitável com esse fluxo de trabalho.
Etapa 1 - Armazene a chave no chaveiro
Apenas faça isso uma vez:
Digite sua senha de chave e você não será solicitado novamente.
(Se você está na versão pré-Sierra do OSX, está pronto, a Etapa 2 não é necessária.)
Etapa 2 - Configure o SSH para sempre usar o chaveiro
Parece que o OSX Sierra removeu o comportamento conveniente de persistir suas chaves entre logons, e a atualização para ssh não usa mais o chaveiro por padrão. Por esse motivo, você será solicitado a digitar a senha de uma chave após a atualização e novamente após cada reinicialização.
A solução é bastante simples e está descrita neste comentário de tópico do github . Veja como você o configura:
Verifique se você concluiu a Etapa 1 acima para armazenar a chave no chaveiro.
Se você ainda não o fez, crie um
~/.ssh/config
arquivo. Em outras palavras, no.ssh
diretório em seu diretório home, fazer um arquivo chamadoconfig
.Nesse
.ssh/config
arquivo, adicione as seguintes linhas:Mude
~/.ssh/id_rsa
para o nome do arquivo real da sua chave privada. Se você tiver outras chaves privadas em seu~.ssh
diretório, adicione também umaIdentityFile
linha para cada uma delas. Por exemplo, eu tenho uma linha adicional que lêIdentityFile ~/.ssh/id_ed25519
uma segunda chave privada.Essa
UseKeychain yes
é a parte principal, que instrui o SSH a procurar no código-chave do OSX a senha da chave.É isso aí! Na próxima vez que você carregar qualquer conexão ssh, ele tentará as chaves privadas que você especificou e procurará sua senha no chaveiro OSX. Não é necessário digitar a senha.
fonte
ssh-add -K ...
chaves adicionadas ao agente ssh sem solicitar uma senha, mas apenas para a sessão atual. Após uma reinicialização, tive que reemitir o comando.ssh-add -A
manualmente para carregar o chaveiro salvo. Algumas soluções possíveis mencionadas acima..ssh/config
arquivo de joshbuchea parece promissora! Veja github.com/lionheart/openradar-mirror/issues/…A
bandeira alémK
daquela para adicionar minhas chaves ao chaveiro e registrar a senha nele (ssh-add -AK ~/.ssh/[your-private-key]
). Obrigado!Eu tive um problema semelhante, pois estava me perguntando TODA A VEZ a minha senha do pub-key.
Por sugestão do usuário "trisweb" acima, ativei essas opções em ~ / .ssh / config:
Mas ainda era solicitado toda vez que eu queria usar o ssh.
Eventualmente, ativei o "ssh -v" e encontrei esta linha de depuração:
Abri meu chaveiro em "Keychain Access.app", encontrei a chave chamada "SSH: /Users/username/.ssh/id_rsa" e abri-a.
Cliquei em "Mostrar senha" para divulgar a senha e, de fato, descobri que a senha no chaveiro era uma senha antiga.
Atualizei a senha no Acesso às Chaves e agora funciona sem senha.
Eu também poderia ter atualizado a senha com esta frase:
fonte
Você sempre solicita a senha, porque seu chaveiro de "login" está sendo bloqueado após inatividade e / ou suspensão ou, no caso, uma reinicialização. Existem duas maneiras de resolver isso para você.
Altere as configurações do seu chaveiro de "login". Supondo que sua chave ssh esteja armazenada no chaveiro "login".
Gere outra chave SSH sem usar uma senha.
ssh-keygen -t rsa -b 4096 -C <comment> -f <.ssh/id_rsa>
ssh-add -K <path to ssh key>
Você não deve mais ser solicitado a fornecer uma senha de chaveiro.
fonte
ssh-add
de dentro do SSH,security unlock-keychain
deve ser chamado primeiro. Além disso, não tive que criar os diretórios para o-f
parâmetro. Infelizmente, eu ainda tinha que ligarsecurity unlocl-keychain
em sessões SSH para acessar o chaveiro de login, que solicita a senha cada vez ...Além disso, no macOS Sierra e HighSierra (não sei sobre versões anteriores), a execução
ssh-add -A
fará com que o agente carregue todas as chaves cujas senhas estão armazenadas no Keychain ... Tão útilfonte
Para todos os itens acima, o meu problema parece ter sido porque eu estava duplicando o
UseKeychain yes
&AddKeysToAgent yes
em todos os perfis / atalhos das teclas ssh. Atualizei meu~/.ssh/config
arquivo para declará-los apenas uma vez e agora todos são carregados no logon sem solicitar senhas na inicialização, por exemplo:fonte
Adicione a chave pública em:
A chave pública geralmente está ativada:
espero que ajude
fonte
authorized_keys