SSH solicitando a senha na chave pública sem a senha definida

27

Estou usando a autenticação de chave pública nos meus servidores há algum tempo, mas estou com problemas em um novo 'cliente' tentando conectar-se ao github . Eu li muitos tópicos para verificar se minhas permissões estão configuradas corretamente e geramos uma nova chave para o github. O problema que estou enfrentando é que o ssh está solicitando minha senha, mesmo que eu não tenha definido uma senha. Eu até refiz a chave para ter 100% de certeza de que não inseri uma senha.

ssh -vvv fornece a seguinte saída relacionada:

debug1: Offering public key: /home/me/.ssh/github.pub
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1495
debug1: Remote: Forced command: gerve mygithubusername c3:71:db:34:98:30:6d:c2:ca:d9:51:a8:c6:1b:fc:f7
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: fp c3:71:db:34:98:30:6d:c2:ca:d9:51:a8:c6:1b:fc:f7
debug3: sign_and_send_pubkey
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/home/me/.ssh/github.pub': 

Eu procurei descobrir por que ele está dizendo que PEM_read_PrivateKey falhou, mas não consigo encontrar uma solução.

Eu não uso um agente ou qualquer coisa. Eu configuro meu arquivo ~ / .ssh / config semelhante ao seguinte:

Host github
Host github.com
Hostname github.com
User git
PubkeyAuthentication yes
IdentityFile /home/me/.ssh/github.pub

Desde já, obrigado.

earthmeLon
fonte
@jasonwryan, mova seu comentário para uma resposta. Tenho certeza que você está certo.
andcoz
É um pouco trivial, e eu sou uma piada por não ter percebido isso antes, mas espero que sua resposta forneça ajuda para outras pessoas no futuro.
earthmeLon

Respostas:

26

Quando você usa a IdentityFileopção no seu ~/.ssh/configapontador, você seleciona a chave privada e não a pública .

De man ssh_config:

IdentityFile
Especifica um arquivo a partir do qual a identidade de autenticação DSA, ECDSA ou DSA do usuário é lida. O padrão é ~ / .ssh / identity para a versão 1 do protocolo e ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa e ~ / .ssh / id_rsa para a versão 2 do protocolo.

Portanto, sua ~/.ssh/configentrada deve se parecer com:

Host github.com
Hostname github.com
User git
PubkeyAuthentication yes
IdentityFile /home/me/.ssh/github
jasonwryan
fonte
2
Eu sou tão idiota. Minha única graça salvadora é que isso pode ajudar outros 'idiotas' no futuro.
earthmeLon
11
É um erro fácil o suficiente para fazer ...
jasonwryan
11
Apenas me ajudou, então agradeço a resposta!
Topher Fangio
11
Pinte-me um idiota.
precisa
Isso aconteceu comigo.
unity100 20/03
2

Tivemos esse problema e foi um erro de recortar e colar. Um único %símbolo foi adicionado ao final do arquivo de chaves (então a última linha era -----END RSA PRIVATE KEY-----%). Não havia informações de erro ou depuração ou qualquer outra coisa que sugerisse que a chave tinha o tamanho errado ou estava mal formatado, mas o ssh solicitou uma senha.

andrew lorien
fonte
11
Algo parecido aconteceu comigo. Copiei a chave de outro terminal e copiei demais, sem perceber.
Guillermo
1

No meu caso, o problema era que meu cliente SSH não suporta chaves ED25519. A solução é criar uma chave RSA e usá-la.

Esse problema ocorre com o OpenSSH <6,5 (execução ssh -V) e o PuTTY <0,68 .

Isso pode ser visto na seguinte saída de ssh -vvv:

debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: [email protected],[email protected],[email protected],[email protected],ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,[email protected]
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,[email protected]
debug2: kex_parse_kexinit: hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96
debug2: kex_parse_kexinit: hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96
debug2: kex_parse_kexinit: none,[email protected],zlib
debug2: kex_parse_kexinit: none,[email protected],zlib
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: kex_parse_kexinit: [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ssh-ed25519
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,[email protected]
debug2: kex_parse_kexinit: none,[email protected]

O primeiro bloco descreve o que o cliente suporta e o segundo o que o servidor suporta . Como você pode ver, não há menção de 'curve25519' na metade superior, indicando que o cliente não suporta isso.

user60561
fonte
0

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 algum motivo, isso aciona um prompt para uma chave ssh inexistente.

ognockocaten
fonte