¿Cómo verifico / verifico / pruebo / valido mi frase de contraseña SSH?

297

Creo que olvidé la frase de contraseña para mi clave SSH, pero tengo el presentimiento de lo que podría ser. ¿Cómo verifico si tengo razón?

joachim
fuente
55
Es una passphrasecontraseña sin contraseña;)
Timo

Respuestas:

123

Puede verificar su frase de contraseña de clave SSH intentando cargarla en su agente SSH. Con OpenSSH esto se hace a través de ssh-add.

Una vez que haya terminado, recuerde descargar su frase de contraseña SSH del terminal ejecutando ssh-add -d.

Ignacio Vazquez-Abrams
fuente
13
Una vez que haya terminado de verificar, descargue la frase de contraseña de la clave SSH de su agente SSH conssh-add -d
Kache
1
ssh-add requiere derechos de administrador en la máquina, creo. Recibo un error: "No se pudo abrir una conexión con su agente de autenticación".
IgorGanapolsky
@IgorGanapolsky: No, requiere un agente de autenticación en ejecución. Modifique sus scripts u opciones de inicio para que aparezca uno.
Ignacio Vazquez-Abrams
20
La respuesta de Rob es la respuesta correcta.
mgarciaisaia
Si está utilizando selinux, ¡también puede consultar el contexto del directorio de inicio y los archivos .ssh! Tuve la suerte de poder usar esta solución simple: # restorecon -R -v /home/userpara verificar si este es el problema (aunque el comando anterior no debería causar ningún problema), puede usar $ ls -lZR <home_dir>para examinar el contexto. Si no ve user_home_ten el directorio de inicio y ssh_home_ten el .sshdirectorio y el authorized_keysarchivo, utilice restoreconpara corregirlos.
fbicknel
523

ssh-keygen -y

ssh-keygen -y le pedirá la frase de contraseña (si hay una).

    Si ingresa la frase de contraseña correcta , le mostrará la clave pública asociada.
    Si ingresa la frase de contraseña incorrecta , se mostrará load failed.
    Si la llave tiene ninguna frase de contraseña, lo hará no le pedirá una contraseña y se mostrará inmediatamente la clave pública asociada.

p.ej,

Cree un nuevo par de claves pública / privada, con o sin frase de contraseña:

$ ssh-keygen -f /tmp/my_key
...

Ahora vea si puede acceder al par de claves:

$ ssh-keygen -y -f /tmp/my_key


El siguiente es un ejemplo extendido, que muestra la salida.

Cree un nuevo par de claves pública / privada, con o sin frase de contraseña:

$ ssh-keygen -f /tmp/my_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /tmp/my_key.
Your public key has been saved in /tmp/my_key.pub.
The key fingerprint is:
de:24:1b:64:06:43:ca:76:ba:81:e5:f2:59:3b:81:fe [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|     .+          |
|   . . o         |
|    = . +        |
|   = + +         |
|  o = o S .      |
|   + = + *       |
|    = o o .      |
|     . .         |
|      E          |
+-----------------+

Intente acceder al par de claves ingresando la frase de contraseña correcta. Tenga en cuenta que se mostrará la clave pública y el estado de salida ( $?) será 0para indicar el éxito:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBJhVYDYxXOvcQw0iJTPY64anbwSyzI58hht6xCGJ2gzGUJDIsr1NDQsclka6s0J9TNhUEBBzKvh9nTAYibXwwhIqBwJ6UwWIfA3HY13WS161CUpuKv2A/PrfK0wLFBDBlwP6WjwJNfi4NwxA21GUS/Vcm/SuMwaFid9bM2Ap4wZIahx2fxyJhmHugGUFF9qYI4yRJchaVj7TxEmquCXgVf4RVWnOSs9/MTH8YvH+wHP4WmUzsDI+uaF1SpCyQ1DpazzPWAQPgZv9R8ihOrItLXC1W6TPJkt1CLr/YFpz6vapdola8cRw6g/jTYms00Yxf2hn0/o8ORpQ9qBpcAjJN
$ echo $?
0

Intente acceder al par de claves ingresando una frase de contraseña incorrecta. Tenga en cuenta que se mostrará el mensaje de error "carga fallida" (el mensaje puede variar según el sistema operativo) y el estado de salida ( $?) será 1para indicar un error:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
load failed
$ echo $?
1

Intenta acceder a un par de claves que no tiene frase de contraseña. Tenga en cuenta que no hay un mensaje para la frase de contraseña, se mostrará la clave pública y el estado de salida ( $?) será 0para indicar el éxito:

$ ssh-keygen -y -f /tmp/my_key_with_no_passphrase
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLinxx9T4HE6Brw2CvFacvFrYcOSoQUmwL4Cld4enpg8vEiN8DB2ygrhFtKVo0qMAiGWyqz9gXweXhdmAIsVXqhOJIQvD8FqddA/SMgqM++2M7GxgH68N+0V+ih7EUqf8Hb2PIeubhkQJQGzB3FjYkvRLZqE/oC1Q5nL4B1L1zDQYPSnQKneaRNG/NGIaoVwsy6gcCZeqKHywsXBOHLF4F5nf/JKqfS6ojStvzajf0eyQcUMDVhdxTN/hIfEN/HdYbOxHtwDoerv+9f6h2OUxZny1vRNivZxTa+9Qzcet4tkZWibgLmqRyFeTcWh+nOJn7K3puFB2kKoJ10q31Tq19
$ echo $?
0
Rob Bednark
fuente
2
Si no hay contraseña, solo imprimirá la clave pública asociada.
Kyrremann
1
Gracias @Kyrremann! Ahora he actualizado la respuesta para reflejar eso.
Rob Bednark el
ssh-keygen -ysolicita el archivo de clave y ofrece un valor predeterminado cuando se hace clic en regresar como se esperaría.
Timo
Solía ssh-keygen -yverificar la frase de contraseña de mi clave ssh. Funcionó bien, excepto que mi Ubuntu se volvió increíblemente lento. La mayoría de los programas podrían iniciarse en un minuto o más mientras el uso de la CPU era del 100%. Después de reiniciar mi computadora portátil, apenas podía iniciar sesión, ya que me llevó minutos ver mi escritorio. Finalmente encontré este problema en Ask Ubuntu . Tuve que comenzar gnome-keyring-daemonpara resolver el problema.
Adam Fónagy
2

Extendiendo la solución de @ RobBednark a un escenario específico de Windows + PuTTY, puede hacerlo:

  1. Genere un par de claves SSH con PuTTYgen (luego de generar manualmente su clave SSH en Windows ), guardándola en un archivo PPK;

  2. Con el menú contextual en el Explorador de Windows, elija Editar con PuTTYgen. Solicitará una contraseña.

Si escribe la contraseña incorrecta, simplemente se le solicitará nuevamente.

Tenga en cuenta, si te gusta escribir, utilice el siguiente comando en una carpeta que contiene el archivo PPK: puttygen private-key.ppk -y.

kokbira
fuente
0

Use "ssh-keygen -p". Puedes agregar "-f"

Le pedirá la contraseña anterior. Si la contraseña es correcta, se le pedirá que ingrese una nueva contraseña. Si la contraseña anterior es incorrecta, aparecerá "No se pudo cargar la clave <...>".

Alex F
fuente
-1

Si su frase de contraseña es desbloquear su clave SSH y no tiene ssh-agent, pero tiene sshd (el demonio SSH) instalado en su máquina, haga lo siguiente:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys;
ssh localhost -i ~/.ssh/id_rsa

¿Dónde ~/.ssh/id_rsa.pubestá la clave pública y ~/.ssh/id_rsaes la clave privada?

Alexx Roche
fuente
1
No pide una frase de
contraseña para
Lo hace para mí, desbloquear el id_rsa privado para ssh localhost
Alexx Roche
Recibo un error: "ssh: conectar al host localhost puerto 22: número de archivo incorrecto"
IgorGanapolsky