Trabajar con contraseñas de clave SSH
Puedes asegurar tus claves SSH y configurar un agente de autenticación para no tener que volver a ingresar tu contraseña cada vez que uses tus claves SSH.
En este artículo
- Agregar o cambiar una contraseña
- Auto-lanzamiento
ssh-agent
en Git para Windows - Guardar tu contraseña en keychain
- Leer más
Con las claves SSH, si alguien obtiene acceso a tu computadora, también tiene acceso a cada sistema que usa esa clave. Para agregar una capa extra de seguridad, puedes incluir una contraseña a tu clave SSH. Puedes usar ssh-agent
para guardar tu contraseña de forma segura y no tener que volver a ingresarla.
Agregar o cambiar una contraseña
Puedes cambiar la contraseña por una llave privada existente sin volver a generar el par de claves al escribir el siguiente comando:
$ ssh-keygen -p
# Comienza con el proceso de creación de clave SSH
> Enter file in which the key is (/Users/you/.ssh/id_rsa): [Hit enter]
> Key has comment '/Users/you/.ssh/id_rsa'
> Enter new passphrase (empty for no passphrase): [Type new passphrase]
> Enter same passphrase again: [One more time for luck]
> Your identification has been saved with the new passphrase.
Si tu clave ya tiene una contraseña, se te pedirá que la ingreses antes de que puedas cambiar a una nueva contraseña.
Auto-lanzamiento ssh-agent
en Git para Windows
Si estás usando Git Shell instalado con GitHub Desktop, no necesitas seguir estos pasos. GitHub Desktop automáticamente inicia ssh-agent
por ti.
De lo contrario, sigue estos pasos para ejecutar ssh-agent
automáticamente cuando abres Git Bash o Git Shell. Copia las siguientes líneas y pégalas en tu ~/.perfil
o archivo ~/.bashrc
en Git Shell:
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }
agent_load_env
# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi
unset env
If your private key is not stored in one of the default locations (like ~/.ssh/id_rsa
or ~/.ssh/id_dsa
), you'll need to tell your SSH authentication agent where to find it. Para agregar tu clave a ssh-agent, escribe ssh-add ~/path/to/my_key
. Para obtener más información, consulta "Generar una nueva clave SSH y agregarla a ssh-agent"
Sugerencias: si quieres que ssh-agent
olvide tu clave luego de un tiempo, puedes configurarlo para que lo haga ejecutando ssh-add -t <seconds>
.
Ahora, cuando ejecutas Git Bash por primera vez, se te pedirá tu contraseña:
> Initializing new SSH agent...
> succeeded
> Enter passphrase for /c/Users/you/.ssh/id_rsa:
> Identity added: /c/Users/you/.ssh/id_rsa (/c/Users/you/.ssh/id_rsa)
> Welcome to Git (version 1.6.0.2-preview20080923)
>
> Run 'git help git' to display the help index.
> Run 'git help ' to display help for specific commands.
El proceso de ssh-agent
continuará funcionando hasta que cierres sesión, apagues tu computadora o termines el proceso.
Guardar tu contraseña en keychain
En OS X Leopard a través de OS X El Capitan, los siguientes archivos de llave privada predeterminada se manejan automáticamente:
- .ssh/id_rsa
- .ssh/id_dsa
- .ssh/identity
La primera vez que usas tu clave, se te pedirá que ingreses tu contraseña. Si eliges guardar la contraseña con tu keychain, no necesitarás ingresarla nuevamente.
De lo contrario, puedes almacenar tu contraseña en la keychain cuando agregues tu clave a ssh-agent. Para obtener más información, consulta "Agregar tu clave SSH a ssh-agent."