366 votos

¿Cómo puedo cambiar la frase de contraseña de mi clave privada?

Tengo un par de claves públicas y privadas. La clave privada está protegida por contraseña, y el cifrado puede ser RSA o DSA. Estas claves son del tipo que se generan con ssh-keygen y generalmente se almacenan bajo ~/.ssh .

Me gustaría cambiar la contraseña de la clave privada. Cómo lo hago, en un Unix estándar Shell?

Además, ¿cómo puedo eliminar simplemente la contraseña? ¿Simplemente cambiarla por una vacía?

481voto

Kim Puntos 1853

Para cambiar la frase de contraseña de su clave por defecto:

$ ssh-keygen -p

Si necesita especificar una clave, pase el -f opción:

$ ssh-keygen -p -f ~/.ssh/id_dsa

y luego proporcione su frase de acceso antigua y nueva (dos veces) en las indicaciones. (Utilice ~/.ssh/id_rsa si tiene una clave RSA).

Más detalles en man ssh-keygen :

[...]
SYNOPSIS
    ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment]
               [-f output_keyfile]
    ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
[...]
     -f filename
             Specifies the filename of the key file.
[...]
     -N new_passphrase
             Provides the new passphrase.

     -P passphrase
             Provides the (old) passphrase.

     -p      Requests changing the passphrase of a private key file instead of
             creating a new private key.  The program will prompt for the file
             containing the private key, for the old passphrase, and twice for
             the new passphrase.
[...]

1 votos

Esto es de la página man que viene con net-misc/openssh-5.2_p1-r2 en Gentoo Linux.

0 votos

O, más precisamente, para una clave DSA de ubicación predeterminada, ssh-keygen -pf ~/.ssh/id_dsa

0 votos

Me gusta proporcionar el archivo de claves como arg, ¿podría actualizar su respuesta para reflejar mis caprichosos caprichos para que pueda aceptarla sin reservas? #pedanticwho

2voto

mivk Puntos 334

Si no tiene ssh-keygen instalado, también puede utilizar openssl directamente

key="/path/to/your.key"
algo="-des3" # or -aes256 or ...

openssl rsa $algo -in "$key" -out "$key.new"

# and replace old key with new one
mv "$key.new" "$key"

-14voto

gauta Puntos 1

Elimine sus claves públicas/privadas SSH:

rm ~/.ssh/id_rsa*

Vuelva a crear el par de claves, eligiendo una nueva frase de paso:

ssh-keygen -t rsa -f ~/.ssh/id_rsa

Añade la clave privada recién creada a tu llavero de OS X para almacenar la frase de contraseña y gestionar el desbloqueo automáticamente:

ssh-add -K ~/.ssh/id_rsa

Copia la clave pública en el portapapeles de OS X para añadirla a servicios web como GitHub, etc.

cat ~/.ssh/id_rsa.pub | pbcopy

Añade tu clave pública recién creada al ~/.ssh/authorized_keys del servidor remoto. Asegúrese de asegurar los permisos correctos tanto del ~/.ssh carpeta (700) y ~/.ssh/authorized_keys (600). Puede que quiera investigar el uso de ssh-copy-id para facilitar este proceso.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: