Eu tenho um par de chaves pública / privada. Nenhum deles tem nenhum tipo de senha associada a eles.
Sempre que tento ssh usando o privado ou o público (e tenho certeza de que só devo usar a chave pública), sou consultado por uma senha e, é claro, não consigo me conectar.
Alguém tem alguma idéia de como contornar isso? Estou digitando algum comando incorretamente? Estou tentando ssh em um servidor que eu configurei no meu arquivo ~ / .ssh / config (corretamente, pois essa mesma configuração funciona em outro servidor) com a chave armazenada em ~ / .ec2 / key.ppk
Também tentei usar o puttygen.exe para gerar uma nova chave privada com uma senha e, em seguida, usar essa chave; quando digito a senha, ela ainda falha.
ssh-rsa AAAAB3NzaC1y...... etc
o formato do openssh, certo? Eu tenho esse formato na minha chave privada. O cabeçalho declara:PuTTY-User-Key-File-2: ssh-rsa Encryption: none Comment: imported-openssh-key Public-Lines: 6
Mas o arquivo é armazenado como um arquivo id_rsa. Isso significa que ele ainda está no formato .ppk, mesmo que o nome do arquivo seja justoid_rsa
.ppk
, ele ainda estava no formato de massa, o que me confundiu, pois mostrava todos os tipos de erros, mas não deu nenhuma dica direta de que o problema estava no formato da chave : stackoverflow.com/a/44391850/4752883Você pode executar o ssh-agent. Veja aqui para uma discussão.
A versão curta que funcionou para mim (no bash):
Peguei as 3 linhas que ecoam e as executei. Outra maneira de fazer isso é obter a saída de -s:
Em seguida, adicionei minhas credenciais:
Agora, o agente fornece as credenciais, em vez de eu ter que digitar minha senha.
Eu acredito que o ssh-agent desaparece quando o shell desaparece, portanto, isso deve ser script na inicialização, para maior comodidade. O link que compartilhei descreve também os scripts.
fonte
Quando você configura sua chave pública, provavelmente (talvez sem querer) a configura com uma senha.
Você provavelmente precisa começar do zero - eu não usei o 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 senha) e, em seguida, compartilhe a public_key no arquivo allowed_keys no servidor ao qual você está tentando se conectar.Você também pode precisar remover sua chave de senha antiga do arquivo de chaves autorizadas no servidor ao qual está se conectando.
fonte
Verifique se a chave privada
id_rsa
não possui quebras de linha extras no final; em alguns casos, quebras de linha extras farão com que o ssh-keygen solicite a senha, tente o seguinte:teste:
fonte
-----END RSA PRIVATE KEY-----
solicitação da senha em uma chave que não tinha um conjunto!Uma coisa a verificar, se seu arquivo sshd_config tiver StrictModes = yes, o diretório $ HOME ou o diretório $ HOME / .ssh não deve ser gravável mundialmente em grupo ou outro. Caso contrário, a autenticação falhará, não importa o quê.
fonte
Cometi o erro de substituir acidentalmente meu arquivo ~ / .ssh / id_rsa pelo meu ~ / .ssh / id_rsa.pub. Isso fará com que o ssh peça uma frase secreta.
fonte
Encontrei 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 personagem. Acontece que, se você não pegar todos os hífens no final da sua chave privada, mesmo que isso não tenha nada a ver com o texto da chave, será solicitada uma senha para a chave privada até adicionar todos os caracteres do chave da qual você copiou (no meu caso, isso significava adicionar um único hífen ao final da chave).
Suponho que isso significa que a melhor prática é fazer o SSH do arquivo de texto através da conexão, em vez de tentar copiar e colar entre as janelas do Terminal.
fonte
No OSX eu era capaz de executar:
$ 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> Utilitários. Acabei de entrar
id_
no campo de pesquisa.fonte
Tente visualizar os arquivos de log no servidor. Veja / var / log / auth log (por exemplo, / var / log / authlog para o OpenSSH, embora eu já tenha visto alguns sistemas operacionais usarem o Portable OpenSSH e /var/log/auth.log) e verifique o final desse arquivo.
As causas mais comuns que eu vi são permissões incorretas (conforme observado pela resposta do TD1 ), embora outros problemas possam estar com a chave pública (armazenada no servidor) não estar no arquivo correto, ou com a chave sendo comentada ou um nome de usuário com erro de ortografia.
Também pode ser útil (para solução de problemas) fornecer uma senha temporariamente à conta, apenas para verificar se a conta pode ser bem-sucedida quando você faz isso.
Se a visualização do arquivo de log não levar rapidamente a uma resolução, sugiro postar uma nova pergunta (já que essa é uma ótima pergunta generalizada) que inclui os detalhes específicos do arquivo de log, para que instruções mais específicas possam ser fornecidas.
fonte
Na minha equipe, quando isso acontece, não há problema com nada localmente. A chave ssh do usuário e / ou o acesso não foram configurados corretamente no servidor ao qual estão se conectando (no nosso caso, uma plataforma de hospedagem). Por alguma razão, isso aciona um prompt para uma chave ssh inexistente.
fonte