Tutoriel Linux

Agente SSH en Linux: evite volver a escribir su contraseña sin dejar su clave a la vista.

Débutant4 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

Si utilizas una clave SSH protegida por una contraseña, probablemente estés familiarizado con el problema: es segura, pero se vuelve rápidamente tediosa cuando tienes que volver a escribir la contraseña cada vez que te conectas o cada vez que… git tirarLa respuesta incorrecta es eliminar la frase de contraseña de la clave. La mejor respuesta, en muchos casos, es agente ssh.

agente ssh Guarda la clave desbloqueada en memoria para tu sesión. Solo tienes que introducir la contraseña una vez y, a partir de ahí, el agente responderá a las solicitudes SSH. Es práctico, pero requiere dos precauciones: comprobar qué agente se está utilizando y limitar la duración cuando se trabaja en un equipo compartido o en un servidor de administración.

Tux protege una clave SSH en un agente seguro conectado a un servidor Linux.
ssh-agent evita tener que volver a escribir la contraseña, al tiempo que mantiene protegida la clave SSH.

Comprueba si ssh-agent ya está en ejecución.

En muchas distribuciones de Linux con interfaz gráfica, ya se ejecuta un agente SSH. En SSH puro, en un servidor o en una sesión mínima, esto no siempre es así. Comience por verificar la variable de entorno utilizada por las herramientas SSH:

echo "$SSH_AUTH_SOCK"

Si la salida está vacía, su intérprete de comandos no sabe con qué agente comunicarse. También puede verificar las claves que ya se han cargado:

ssh-add -l

Si recibes un mensaje como este El agente no tiene identidad.El agente responde correctamente, pero no se carga ninguna clave. Si el comando indica que no puede conectarse al agente, deberá iniciar uno.

Inicia ssh-agent en tu sesión.

Para iniciar un agente en la consola actual, utilice:

evaluar "$(ssh-agent -s)"

El comando define las variables necesarias, incluyendo SSH_AUTH_SOCK Y PID_AGENTE_SSH. sin el evaluarEl agente puede iniciarse, pero la consola no recupera correctamente su entorno. Este tipo de detalle es lo que hace perder tiempo cuando se realizan pruebas con demasiada prisa.

Puedes confirmarlo justo después de esto:

echo "$SSH_AUTH_SOCK"

En un ordenador personal, eso suele ser suficiente. En un servidor compartido, prefiero evitar dejar un agente abierto todo el día sin límite de tiempo.

Agregue una clave SSH con una duración limitada.

Para cargar una unidad USB estándar:

ssh-add ~/.ssh/id_ed25519

Introduce la contraseña una sola vez. Después de eso, las conexiones que utilicen esta clave pasarán por el agente. Para comprobar qué se ha cargado:

ssh-add -l -E sha256

Para limitar la vida útil de la clave en el agente, utilice -tEjemplo con una hora:

ssh-add -t 1h ~/.ssh/id_ed25519

Esta es mi configuración preferida en una estación de trabajo administrativa. Se conserva la comodidad del agente, pero la clave no permanece disponible indefinidamente si olvidas cerrar la sesión.

Probar una conexión sin volver a introducir la contraseña.

Una vez cargada la clave, pruebe una conexión normal:

ssh usuario@servidor

Si la clave coincide con la del servidor, SSH no le pedirá la contraseña nuevamente. Si falla, inténtelo de nuevo en modo detallado:

ssh -v usuario@servidor

Podrás ver qué clave se ofrece, si el agente responde y dónde se bloquea la conexión. Si el problema probablemente reside en el servicio SSH del servidor, también he publicado una guía al respecto. Reiniciar SSH en Ubuntu correctamente y otro para Reinstale SSH cuando deje de responder..

Retire las claves del agente

Para eliminar una clave específica:

ssh-add -d ~/.ssh/id_ed25519

Para vaciar todas las claves cargadas:

ssh-add -D

Si iniciaste el agente manualmente y quieres detenerlo:

ssh-agente -k

No confunda estos comandos con la eliminación del archivo de clave en ~/.sshAquí, simplemente estás eliminando la clave de la memoria del agente.

Tenga cuidado al transferir agentes SSH.

Transferencia de agente, a menudo activada con ssh -AEsto permite que una máquina remota utilice tu agente local para redirigir el tráfico a otro servidor. Es útil en algunos entornos, pero yo lo evitaría por defecto.

Si el servidor intermedio se ve comprometido, su clave privada no se copia, pero aún se puede acceder al agente mientras la sesión esté abierta. Para un servidor bastión o una máquina que no controle completamente, opte por una clave dedicada, una duración limitada o una configuración SSH más estricta.

Para mantener una sesión larga sin perder tu trabajo, pantalla bajo Linux aborda otra necesidad: mantener una sesión de administrador abierta en el lado del servidor. Esto no es un reemplazo para agente ssh

El compromiso que mantendría

No elimine la frase de contraseña de sus claves SSH para ahorrar unos segundos. En su lugar, cargue la clave en agente ssh, compruebe las claves activas con ssh-add -llimitar la duración con ssh-add -t Cuando el contexto sea sensible, vacíe el agente al final de la intervención.

Las páginas del manual de agente ssh, ssh-add Y ssh Detallan las opciones disponibles. No hace falta recordarlo todo. Lo importante es tener una clave segura, pero que se pueda usar sin que cada conexión se convierta en una tarea tediosa.

sudo apt update && sudo apt upgrade