SSH solicita frase de contraseña en clave pública sin conjunto de frase de contraseña

27

He estado utilizando la autenticación de clave pública en mis servidores durante un tiempo, pero estoy experimentando problemas con un nuevo 'cliente' que intenta conectarse a github . He leído muchos hilos para verificar que mis permisos están configurados correctamente y he generado una nueva clave para github. El problema al que me enfrento es que ssh está pidiendo mi frase de contraseña a pesar de que no configuré una frase de contraseña. Incluso he vuelto a hacer la clave para estar 100% seguro de que no ingresé una frase de contraseña.

ssh -vvv proporciona el siguiente resultado relacionado:

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': 

He buscado averiguar por qué me dice que PEM_read_PrivateKey falló, pero no puedo encontrar una solución.

No uso un agente ni nada. Configuro mi archivo ~ / .ssh / config similar al siguiente:

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

Gracias por adelantado.

earthmeLon
fuente
@jasonwryan, por favor mueve tu comentario a una respuesta. Estoy bastante seguro de que tienes razón.
andcoz
Es un poco trivial, y soy un tonto por no haber notado esto antes, pero espero que su respuesta brinde ayuda a otros en el futuro.
earthmeLon

Respuestas:

26

Cuando usa la IdentityFileopción en su ~/.ssh/configapunte a la clave privada, no a la pública .

De man ssh_config:

IdentityFile
Especifica un archivo desde el que se lee la identidad de autenticación DSA, ECDSA o DSA del usuario. El valor predeterminado es ~ / .ssh / identity para la versión 1 del protocolo, y ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa y ~ / .ssh / id_rsa para la versión 2 del protocolo.

Entonces, su ~/.ssh/configentrada debería verse así:

Host github.com
Hostname github.com
User git
PubkeyAuthentication yes
IdentityFile /home/me/.ssh/github
jasonwryan
fuente
2
Soy tan tonto. Mi única gracia salvadora es que esto puede ayudar a otros 'doofuses' en el futuro.
earthmeLon
1
Es un error bastante fácil cometer ...
jasonwryan 23/03/12
1
Solo me ayudó, ¡así que agradezco la respuesta!
Topher Fangio
1
Coloréeme un tonto.
jeremiah
Esto me sirvió.
unity100
2

Tuvimos este problema y fue un error de cortar y pegar. Se %había agregado un solo símbolo al final del archivo de clave (por lo que la última línea era -----END RSA PRIVATE KEY-----%). No hubo información de error o depuración ni nada que sugiriera que la clave tenía una longitud incorrecta o un formato incorrecto, pero ssh solicitó una frase de contraseña.

Andrew Lorien
fuente
1
Algo similar me sucedió. Copié la llave de otro terminal y copié demasiado sin darme cuenta.
Guillermo
1

En mi caso, el problema era que mi cliente SSH no admite claves ED25519. La solución es crear una clave RSA y usarla en su lugar.

Este problema ocurre con OpenSSH <6.5 (ejecución ssh -V) y PuTTY <0.68 .

Esto se puede ver en la siguiente salida 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]

El primer bloque describe lo que admite el cliente y el segundo lo que admite el servidor . Como puede ver, no se menciona 'curve25519' en la mitad superior, lo que indica que el cliente no lo admite.

usuario60561
fuente
0

En mi equipo, cuando esto sucede, no es un problema con nada localmente. La clave y / o acceso ssh del usuario no se ha configurado correctamente en el servidor al que se está conectando (en nuestro caso, una plataforma de alojamiento). Por alguna razón, esto desencadena una solicitud de una clave ssh inexistente.

ognockocaten
fuente