¿Cómo cambio mi frase de contraseña de clave privada?


284

Tengo un par de claves pública / privada existente. La clave privada está protegida con contraseña y el cifrado puede ser RSA o DSA. Estas claves son del tipo que genera ssh-keygeny generalmente almacena debajo ~/.ssh.

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

Además, ¿cómo elimino la contraseña? ¿Solo cambiarlo a vacío?

Respuestas:


372

Para cambiar la frase de contraseña en su clave DSA predeterminada:

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

luego proporcione su frase de contraseña antigua y nueva (dos veces) en las indicaciones. (Úselo ~/.ssh/id_rsasi tiene una clave RSA).

Más detalles de 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
Esto es del envío de la página de manual con net-misc / openssh-5.2_p1-r2 en Gentoo Linux.
— Mike Mazur el

12
Además, por el bien de la futura persona perezosa, revertiría el orden: respuesta rápida primero, página del manual más tarde.
— kch

2
Creo que la respuesta es excelente, ya que muestra dónde puede cambiar la contraseña y dónde buscar la respuesta. He ayudado a muchas personas a configurar claves ssh, y para ellos recordar qué herramienta han utilizado no siempre es fácil. Además, la búsqueda de la respuesta en la 'red es la primera opción para muchos ...
— sastorsl

55
Si sus máquinas usan OpenSSH> = 6.5, debería usar la -oopción para habilitar el nuevo formato de clave privada (bcrypt como KDF por defecto). Con versiones anteriores de OpenSSH, use PKCS # 8 para archivos de clave privada más seguros .
— Quinn Commandado

2
@FranciscoLuz el comando en mi respuesta es específico de una clave DSA. Si tiene una clave RSA, entonces su comando es correcto. Agregué una propaganda a la respuesta para abordar esto.
— Mike Mazur

-9

Elimine sus claves públicas / privadas de SSH:

rm ~/.ssh/id_rsa*

Recree el par de claves, eligiendo una nueva frase de contraseña:

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

Agregue la clave privada recién creada a su Llavero OS X para almacenar la frase de contraseña y administrar su desbloqueo automáticamente:

ssh-add -K ~/.ssh/id_rsa

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

cat ~/.ssh/id_rsa.pub | pbcopy

Agregue su clave pública recién creada al ~/.ssh/authorized_keysarchivo del servidor remoto. Asegúrese de garantizar los permisos correctos de la ~/.sshcarpeta remota (700) y ~/.ssh/authorized_keys(600). Es posible que desee investigar utilizando ssh-copy-idpara facilitar este proceso.


3
El cartel preguntaba cómo cambiar la frase de contraseña en su clave, no tirarla y generar una nueva; y nunca mencionaron OS X.
— musicinmybrain

2
Hubiera votado a favor de esta respuesta si no fuera por estos tres problemas: 1. Eliminar las claves antiguas no es un buen comienzo, ya que las necesitará al actualizar authorized_keys. 2. No ha mencionado por qué es mejor crear nuevas claves que cambiar las contraseñas de las antiguas. 3. Hace suposiciones sobre el sistema operativo, que no es compatible con la pregunta.
— Kasperd
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.