chave SSH me pedindo uma frase secreta?

31

Eu tenho um par de chaves pública / privada. Nenhum deles tem qualquer tipo de frase-senha associada a eles.

Sempre que eu tento usar o ssh, seja privado ou público (e tenho certeza de que só deveria estar usando a chave pública), sou questionado por uma frase secreta e, é claro, não consigo me conectar.

Alguém tem alguma idéia de como contornar isso? Estou digitando algum comando incorretamente? Eu estou tentando ssh em um servidor que eu configurei no meu arquivo ~ / .ssh / config (corretamente, desde que esta mesma configuração funciona em outro servidor) com a chave armazenada em ~ / .ec2 / key.ppk

Eu também tentei usar puttygen.exe para gerar uma nova chave privada com uma frase secreta e, em seguida, usando essa chave, e quando eu digito a senha, ele ainda falha.

    
por llaskin 25.06.2010 / 13:46

9 respostas

28

Primeiro, é a chave privada que terá a frase secreta. Isso valida contra a chave pública armazenada no servidor remoto.

O melhor é que você está tentando usar um formato de chave de putty private key ( ppk ) com o openssh, isso não funciona .... O PuTTYgen tem uma opção de exportação para o openssh, se este for o caso.

ssh-rsa AAAAB3NzaC1y...... etc

Eu também suponho que o servidor para o qual você está tentando ssh tem sua chave pública armazenada corretamente no arquivo de chaves autorizado (em ~/.ssh/authorized_keys geralmente).

Outro palpite é que a chave correta não está selecionada. Algumas coisas que eu tentaria são:

Redefinindo a senha com as teclas ssh-keygen , assim ...

$ ssh-keygen -f ~/.ec2/key.ppk -p

Isso confirmará se, de fato, sua chave já possui (ou não) uma frase-senha.

Em segundo lugar, tentei conectar usando uma saída detalhada, especificando sua chave pública explicitamente como saída:

$ ssh host -i ~/.ec2/key.ppk -vvv

Isso lhe dará mais uma ideia do que está acontecendo.

    
por 25.06.2010 / 15:30
10

Você pode executar o ssh-agent. Veja aqui para uma discussão.

A versão curta que funcionou para mim (no bash):

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-rnRLi11880/agent.11880; export SSH_AUTH_SOCK;
SSH_AGENT_PID=11881; export SSH_AGENT_PID;
echo Agent pid 11881;

Eu peguei as 3 linhas que ele ecoa e as executei. Outra maneira de fazer isso é pegar a saída de -s:

$ eval 'ssh-agent -s'

Em seguida, adicionei minhas credenciais a ele:

$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/me/.ssh/id_rsa: 
Identity added: /home/me/.ssh/id_rsa (/home/me/.ssh/id_rsa)

Agora o agente fornece as credenciais em vez de eu ter que digitar minha frase secreta.

Acredito que o ssh-agent desaparece quando o shell faz isso, portanto, ele deve ser roteirizado na inicialização para máxima conveniência. O link que eu compartilhei também descreve scripts.

    
por 11.05.2012 / 17:52
4

Quando você configura sua chave pública, provavelmente (talvez inadvertidamente) a configura com uma frase secreta.

Você provavelmente precisará começar do zero - eu não usei puttygen, mas você pode excluir (ou renomear) a chave pública em seu diretório .ssh, usar ssh-keygen para gerar uma nova (certificando-se de não fornecer uma frase secreta) e compartilhe a chave public_key no arquivo authorized_keys no servidor que você está tentando conectar.

Você também pode precisar remover sua senha antiga do arquivo de chaves autorizadas no servidor ao qual está se conectando.

    
por 25.06.2010 / 15:29
3

Uma coisa a verificar, se o seu arquivo sshd_config tiver StrictModes = yes, então o diretório $ HOME ou o diretório $ HOME / .ssh não deve ser gravável para o grupo ou outro mundo. Caso contrário, a autenticação falha, não importa o quê.

    
por 28.06.2010 / 07:30
1

Eu cometi o erro de sobrescrever acidentalmente meu arquivo ~ / .ssh / id_rsa com meu ~ / .ssh / id_rsa.pub. Fazer isso fará com que o ssh peça uma frase secreta.

    
por 15.02.2017 / 05:28
0

Eu me deparei com esse problema no outro dia. Especificamente, eu estava tentando copiar / colar uma chave privada da AWS de uma máquina para outra.

Eu tenho o mau hábito de perder o primeiro ou o último caractere. Acontece que, se você não pegar todos os hífens no final da sua chave privada - mesmo que não tenha nada a ver com o próprio texto da chave -, você será solicitado a inserir uma senha para a chave privada até adicionar todos os caracteres da lista. chave que você copiou (no meu caso, isso significava adicionar um hífen único ao final da chave).

Suponho que isso significa que a melhor prática é enviar o arquivo de texto SSH pelo fio, em vez de tentar copiar e colar entre as janelas do Terminal.

    
por 07.02.2017 / 23:20
0

No OSX, consegui executar apenas:

$ ssh-add ~/.ssh/id_rsa Enter passphrase for /Users/me/.ssh/id_rsa: 'Identity added: /Users/mikekilmer/.ssh/id_rsa (/Users/mikekilmer/.ssh/id_rsa)

A senha foi armazenada pelo aplicativo Keychain Access, que está na pasta Aplicativos > Pasta de utilitários. Acabei de inserir id_ no campo de pesquisa.

    
por 30.06.2017 / 02:05
0

Verifique se a chave privada id_rsa não tem quebras de linha extras no final. Em alguns casos, quebras de linha extras farão com que o ssh-keygen solicite a senha, tente isto:

sed  '/^$/d' /path/to/key > id_rsa

teste:

ssh-keygen -yf id_rsa
    
por 20.08.2017 / 23:22
0

Tente visualizar os arquivos de log no servidor. Veja / var / log / auth log (por exemplo, / var / log / authlog para OpenSSH, embora eu tenha visto alguns sistemas operacionais usam Portable OpenSSH e use /var/log/auth.log) e verifique o final desse arquivo.

As causas mais comuns que vi são as permissões incorretas (conforme observado por resposta da TD1 ), embora outras questões possam estar com a chave pública (armazenada no servidor) não estando no arquivo correto, ou aquela chave sendo comentada, ou um nome de usuário incorreto.

Também pode ser útil (para a solução de problemas) fornecer temporariamente uma senha para a conta, apenas para verificar se a conta pode ser registrada com êxito quando você faz isso.

Se a visualização do arquivo de registro não levar você rapidamente a uma resolução, sugiro postar uma nova pergunta (pois essa é uma ótima pergunta generalizada) que inclui detalhes específicos do arquivo de registro, para que instruções mais específicas possam ser fornecido.

    
por 28.06.2018 / 02:37