Skip to main content

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.

Platform navigation

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 conectas, 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.