Acerca de las frases de contraseña para claves SSH
Con las claves SSH, si alguien obtiene acceso a tu equipo, el atacante 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. Para evitar escribir la frase de contraseña cada vez que te conecta, puedes guardar la frase de contraseña de forma segura en el agente SSH.
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 -f ~/.ssh/id_ed25519
> Enter old passphrase: [Type old passphrase]
> Key has comment 'your_email@example.com'
> Enter new passphrase (empty for no passphrase): [Type new passphrase]
> Enter same passphrase again: [Repeat the new passphrase]
> 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.
Inicio automático ssh-agent
en Git para Windows
Puede ejecutar ssh-agent
automáticamente al abrir bash o el shell de Git. Copie las líneas siguientes y péguelas en su archivo ~/.profile
o ~/.bashrc
en el shell de Git:
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
Si la clave privada no está almacenada en una de las ubicaciones predeterminadas (como ~/.ssh/id_rsa
), necesitará indicarle a su agente de autenticación SSH dónde encontrarla. Para agregar la clave a ssh-agent, escriba ssh-add ~/path/to/my_key
. Para más información, consulta Generación de una nueva clave SSH y adición al agente SSH.
Tip
Si deseas ssh-agent
olvidar la clave después de algún tiempo, puedes configurarla para tal fin mediante la ejecución de 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 <command>' to display help for specific commands.
El proceso ssh-agent
continuará funcionando hasta que cierre sesión, apague su equipo o termine el proceso.
Guardar tu contraseña en keychain
En Mac OS X Leopard y hasta OS X El Capitan, estos archivos de llave privada predeterminada se manejan automáticamente:
- .ssh/id_rsa
- .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 más información, consulta Generación de una nueva clave SSH y adición al agente SSH.