Instalei minha chave privada SSH ~/.ssh/id_rsa
e defina suas permissões como 0600
. Quando eu me conecto a um servidor SSH que usa minha chave privada no Terminal.app via ssh
, uma caixa de diálogo é exibida e solicita que eu digite minha senha para acessar o id_rsa
arquivo:
Eu vejo a mesma caixa de diálogo quando me conecto a um servidor FTP com o cliente GUI do Interarchy.
Atualização: eu vejo esse diálogo toda vez que me conecto, independentemente de verificar "Lembrar senha no meu chaveiro". Aparece mais duas vezes se o botão OK for clicado, independentemente do que foi digitado no campo de senha.
Quando relaxo essas permissões para, digamos, 0640
não vejo mais uma caixa de diálogo solicitando minha senha, mas ssh
aborta com o seguinte erro:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ @ AVISO: ARQUIVO CHAVE PRIVADO NÃO PROTEGIDO! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ As permissões 0640 para '/Users/myusername/.ssh/id_rsa' estão muito abertas. É recomendável que seus arquivos de chave privada NÃO sejam acessíveis por terceiros. Essa chave privada será ignorada. permissões incorretas: ignore a chave: /Users/myusername/.ssh/id_rsa
Acho a caixa de diálogo de senha extremamente irritante e tenho certeza de que deve haver uma maneira de evitar a necessidade de descartar essa caixa de diálogo que o SSH precisa acessar o id_rsa
arquivo.
Nota: Estou executando o Mac OS X 10.6.8.
fonte
Primeiro, execute
ssh-add -K
e verifique se isso resolve o seu problema.Se não:
Removido o arquivo rsa_id.pub e regenerado um novo (deve estar em ~ / .ssh /):
Permissões garantidas foram definidas como 600 para id_rsa e id_rsa.pub (devem estar em ~ / .ssh /):
Execute o seguinte comando:
Depois de fazer isso, não fui mais solicitado a fornecer minha senha de chave privada. Parece realmente colocar a senha da chave privada no local correto das chaves para o OS X usar.
fonte
chmod 600
(em vez de 644) para que ele funcionessh-add -K
resolvido o meu problemaNo meu caso
ssh-add -K
não deu certo, tive que especificar a chave:fonte
-K
mais opção. Sua solução a corrigiu. Eu me pergunto por que eu precisava fazer isso. Nunca tive nenhuma solicitação de senha.-K
bandeira funcionou para mim no Sierra 10.12.2 #Para o macOS 10.12, o Sierra
ssh-add -K
precisa ser executado após cada reinicialização. Para evitar isso, crie~/.ssh/config
com este conteúdo.A Apple adicionou a nota técnica 2449, que explica o que aconteceu.
Editar: Aparentemente, não é necessário especificar um host e uma chave. Basta adicionar isso é suficiente.
fonte
AddKeysToAgent
no nível superior de~/.ssh/config
.Você precisa digitar a senha da chave privada em algum lugar e o OS X usa o ssh-agent por padrão.
Se você deseja usar o ssh-agent, mas deseja evitar a caixa de diálogo GUI, pode usar o ssh-add para adicionar a senha ao agente e, em seguida, ao ssh como de costume.
Se você não quiser usar o ssh-agent e, em vez disso, tiver o prompt ssh para a senha, desative a variável de ambiente SSH_AUTH_SOCK.
fonte
ssh-add -K
eu não tenho que digitar minha senha para conectar, mas o prompt ainda aparece; Eu apenas descarto.Quando você relaxa as permissões, a chave é ignorada. Você não ganhará nada fazendo isso.
Se você deseja usar uma chave sem precisar digitar uma senha todas as vezes, há duas opções.
Se você marcar a opção "Lembrar senha no meu chaveiro", não precisará digitar a senha todas as vezes: ela será armazenada no chaveiro com todas as suas outras senhas. Esta é a opção recomendada.
Você pode criar um arquivo de chave privada sem uma senha. Você pode alterar seu arquivo de chave privada existente para que não seja protegido por senha (alterar a senha afeta apenas o arquivo de chave, não a própria chave). Na linha de comando, execute
ssh -p
, digite a senha existente e deixe a nova senha em branco. Existe um risco de segurança em ter uma senha vazia: qualquer pessoa que possa acessar seu arquivo de chave privada (por exemplo, acessando seus backups) pode usá-lo instantaneamente.fonte
se você adicionou sua chave privada ao diretório de origem ~ / .ssh e inseriu ssh-add -K para adicioná-la ao chaveiro e o conteúdo da chave pública foi copiado para .ssh / allowed_keys (para a correta conta) no servidor de destino, a caixa de diálogo desaparece.
é uma combinação complicada de arquivos, permissões, locais e comandos, para que possa levar tempo. eu não me apressaria em chegar a uma conclusão sobre bugs.
fonte
Eu tenho exatamente o mesmo problema no Lion (Mac OS X 10.7). Eu acho que é um bug ... Se a autenticação ssh é senha, o cliente passa pela chave pública primeiro, o que é normal. No entanto, mesmo que você opte por salvar a senha no chaveiro (o que não é necessário para a autenticação de senha) na próxima vez em que uma nova conexão ssh for estabelecida, você será solicitado novamente a senha.
fonte
Não deve haver necessidade de gerar novamente suas chaves públicas. Você pode simplesmente executar estes dois comandos:
Basicamente, você precisa aumentar as permissões no arquivo de chave pública e adicionar sua chave ao agente de autenticação OSX.
fonte
Na versão mais recente do macOS (10.12.2 - Sierra), essa é uma solução fácil. Apenas edite seu ~ / .ssh / config e ative a opção UseKeychain:
Salve e resolvido.
fonte
Este problema ocorreu no meu sistema OS X 10.7.4 quando o ssh-agent morreu. Uma reinicialização corrigiu o problema. (Você pode tentar reiniciar o ssh-agent, mas não sei se o Keychain é inteligente o suficiente para pegar o novo soquete do ssh-agent.)
fonte
Certifique-se de que ~ / .ssh / seja chmod 700.
Certifique-se de que os arquivos ~ / .ssh / id * sejam ambos chmod 600.
Execute / Applications / Utilities / Keychain Access.app e repare o chaveiro.
Sair. (Reiniciar não seria uma péssima ideia)
Conecte-se
Se o problema persistir, mova os arquivos ~ / .ssh / id * existentes para a área de trabalho e tente gerar novas chaves usando
ssh-keygen -t dsa -f ~/.ssh/id_dsa -C [email protected]
e veja se as novas chaves funcionam melhor.Estou no Lion, mas o IIRC Snow Leopard funcionou da mesma maneira.
ps - qualquer pessoa que sugerir o uso de uma senha ssh em branco deve ser forçada a usar um sinal para que outras pessoas saibam não seguir seus conselhos.
fonte
Regenerar a chave pública não parece funcionar para mim (10.8), nem gerar uma nova chave SSH. Se eu, por exemplo, executar o git pull após bloquear o chaveiro de login, uma caixa de diálogo será exibida para exigir a senha da chave, em vez de primeiro tentar recuperar a senha do chaveiro de login.
No entanto, se eu matar o ssh-agent primeiro, será solicitada a senha do chaveiro de login que, em seguida, recupera a senha da chave SSH.
fonte
Outra descoberta interessante é que, se você copiar e colar o conteúdo do arquivo PEM, poderá ter o final faltando o traço. Lembre-se de adicionar a linha final como,
fonte
Eu tive que executar as seguintes etapas para fazê-lo funcionar.
O comando final deve gerar algo como:
Hi <user>! You've successfully authenticated, but GitHub does not provide shell access.
fonte
Eu tive o mesmo problema. Eu pareço ter corrigido isso fazendo isso.
1) Faça o backup renomeando para antigos os arquivos id_dsa e id_dsa.pub.
2) Executou um novo keygen com uma senha em branco.
Funciona com o trabalho de período launchctl, monitorando um servidor remoto, bem como efetuando login no ssh em um terminal.
Eu tenho uma função rápida, função authme no meu terminal, pois tenho o seguinte no meu .bash_profile
Portanto, um rápido authme remoteserver.com copiará a nova chave remota.
Eu acho que o bug tem algo a ver com a senha não ser convertida (o meu antigo Snow Leopard não tinha uma).
Tente isso e veja se ajuda.
Não demorou mais de 10 minutos para fazer. Passei uma eternidade pesquisando no Google para ver se havia outras menções a isso. Este site foi o único!
Owain.
fonte
Eu tive um problema semelhante. Acabou que a chave privada que eu estava usando estava em um formato errado. Usei o PuTTY Key Generator na minha máquina Win e o ssh no OS X espera um formato diferente - formato SSH aberto.
Aconteceu que a ferramenta que eu usei para gerar essa chave (PuTTY Key Generator) tinha a opção de converter minha chave privada no formato exigido pelo Open SSH.
Simples como:
O arquivo que você salvará contém sua chave privada original no formato apropriado (OpenSSH).
fonte
Certifique-se de que:
Esperamos que isso resolva o problema.
fonte
Use a chave .pem em vez da chave .ppk.
fonte