¿Cómo elimino la frase de contraseña de la clave SSH sin tener que crear una clave nueva?
-
02-07-2019 - |
Pregunta
Configuré una frase de contraseña al crear una nueva clave SSH en mi computadora portátil.Pero, como ahora me doy cuenta, esto es bastante doloroso cuando intentas comprometerte (git y SVN) a una ubicación remota a través de SSH muchas veces en una hora.
Una forma que se me ocurre es eliminar mis claves SSH y crear nuevas.¿Hay alguna forma de eliminar la frase de contraseña y seguir manteniendo las mismas claves?
Solución
Respuesta corta:
$ ssh-keygen -p
Luego, esto le pedirá que ingrese la ubicación del archivo de claves, la frase de contraseña anterior y la nueva frase de contraseña (que puede dejarse en blanco para no tener frase de contraseña).
Si desea hacerlo todo en una línea sin indicaciones, haga lo siguiente:
$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
Importante: Tenga en cuenta que, al ejecutar comandos, normalmente se registrarán en su ~/.bash_history
archivo (o similar) en texto plano que incluye todos los argumentos proporcionados (es decir,las frases de contraseña en este caso).Por lo tanto, se recomienda utilizar la primera opción a menos que tenga un motivo específico para hacerlo de otra manera.Sin embargo, tenga en cuenta que todavía puede usar -f keyfile
sin tener que especificar -P
ni -N
, y que el archivo de claves por defecto es ~/.ssh/id_rsa
, por lo que en muchos casos ni siquiera es necesario.
Es posible que desee considerar el uso de ssh-agent, que puede almacenar en caché la frase de contraseña por un tiempo.Las últimas versiones de gpg-agent también admiten el protocolo utilizado por ssh-agent.
Otros consejos
Es posible que desee agregar lo siguiente a su .bash_profile (o equivalente), que inicia ssh-agent al iniciar sesión.
if [ -f ~/.agent.env ] ; then
. ~/.agent.env > /dev/null
if ! kill -0 $SSH_AGENT_PID > /dev/null 2>&1; then
echo "Stale agent file found. Spawning new agent… "
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
else
echo "Starting ssh-agent"
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
En algunas distribuciones de Linux (Ubuntu, Debian) puedes usar:
ssh-copy-id -i ~/.ssh/id_dsa.pub username@host
Esto copiará la identificación generada a una máquina remota y la agregará al llavero remoto.
$ ssh-keygen -p
trabajó para mi
Se abrió git bash.Pegado: $ ssh-keygen -p
Pulsa Intro para ver la ubicación predeterminada.
Ingrese la contraseña anterior
Ingrese una nueva contraseña: EN BLANCO
Confirmar nueva contraseña: EN BLANCO
BOOM, el dolor de ingresar una frase de contraseña para git push desapareció.
¡Gracias!