No se puede desbloquear la clave SSH protegida por contraseña en OS X Mavericks

18

Acabo de actualizar a OSX 10.9, y al intentar establecer una conexión SSH con autenticación de clave pública, aparece un mensaje solicitando mi contraseña de clave SSH.

Inicialmente pensé que la actualización hizo que el llavero olvidara algunas contraseñas, así que volví a ingresar la mía. Aparentemente, esa no fue la causa, porque el aviso reapareció.

Primero pensé que podría estar usando la contraseña incorrecta, pero con el siguiente comando:

$ ssh-keygen -vvv -y -f id_rsa >| id_rsa.pub
debug3: Incorrect RSA1 identifier
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase:
debug3: Incorrect RSA1 identifier
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
load failed

... no funciona! Si intento utilizar openssl:

$ openssl rsa -in id_rsa -text
Enter pass phrase for id_rsa:
Private-Key: (2048 bit)
modulus:
    00:...

mi clave privada está correctamente desencriptada y toda la información está impresa.

¿Qué pasó con la actualización a Mavericks? ¿Cómo puedo recuperar mi clave privada en un estado utilizable?

    
pregunta GaretJax 23.10.2013 - 01:26

7 respuestas

22

Aparentemente, la clave privada que estaba usando en mi máquina era una antigua. Mi clave no contenía la información de cifrado agregada al archivo de clave privada si genero uno nuevo:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-...

Para resolver el problema, desencripté la clave con openssl:

$ cd ~/.ssh
$ cp id_rsa id_rsa.bck
$ openssl rsa -in id_rsa -out id_rsa

... y luego volver a cifrarlo:

$ openssl rsa -in id_rsa -aes256 -out id_rsa
$ chmod 0600 id_rsa

Y por si acaso, regenere la clave pública también:

$ ssh-keygen -y -f id_rsa > id_rsa.pub
    
respondido por el GaretJax 23.10.2013 - 01:40
3

Tuve el mismo problema. Lo resolví moviendo .ssh / authorized_keys2 a .ssh / authorized_keys.

El archivo / etc / sshd_config contiene explícitamente estas líneas:

\# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
\# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile  .ssh/authorized_keys

¿Esto es un cambio de la versión anterior de macosx?

    
respondido por el real 01.11.2013 - 11:35
2

El mismo problema aquí, mis claves muestran el mismo comportamiento.

He rastreado el problema hasta esta publicación de blog. Modifiqué mis claves ssh de la manera descrita en este artículo para aumentar la seguridad y funcionó en Mountain Lion. enlace

Supongo que Apple cambió algo con openssh y la versión "nueva" no es capaz de leer el nuevo formato PKCS # 8.

My Mavericks OpenSSH Version: OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011

No tengo otra Mac, así que no puedo compararla con la versión de Mountain Lion.

    
respondido por el tripplet 23.10.2013 - 12:35
2

El uso de brew openssl y openssh soluciona el problema PCKS # 8 en Mavericks.

brew update
brew install openssl
brew link openssl --force
brew install openssh

# confirm correct bins are being used
# both should be located in /usr/local/bin
which openssl
which openssh

# add key back to keychain
ssh-add ~/.ssh/id_rsa

No estoy seguro de si el enlace forzado openssl rompe algo en Mavricks. Hasta ahora, no he notado ningún problema.

    
respondido por el simple10 08.11.2013 - 22:41
0

Pude solucionar este problema simplemente haciendo lo siguiente:

cd ~/.ssh
mv known_hosts known_hosts.old

Ahora ve y conéctate. Cuando se hace la pregunta estándar para agregar el tipo de huella digital, sí.

    
respondido por el Glen Barnhardt 25.10.2013 - 21:11
0

Sucedió para conseguir este problema. Al intentar especificar el cifrado, pude hacer que funcionara bien.

En Linux, cuando intentes generar pares de claves, usa esto:

ssh-keygen -t rsa -Z aes256

La clave pública ahora con cifrado aes256 puede ser reconocida correctamente por ssh en OSX (aquí, la mía es 10.12.1).

    
respondido por el cbakgly 12.11.2016 - 01:53
0

Puedes convertir una clave PuTTY en una clave OpenSSL OS X:

puttygen putty.ppk -O private-openssh -o osx.key

Escribe la contraseña y listo.

    
respondido por el Leo 06.12.2016 - 19:49

Lea otras preguntas en las etiquetas