Soy nuevo en las claves ssh. ¿Alguien puede explicar cómo funciona el ssh-agent bash
y ssh-add
?
Necesito entender sus aspectos internos en el futuro.
Soy nuevo en las claves ssh. ¿Alguien puede explicar cómo funciona el ssh-agent bash
y ssh-add
?
Necesito entender sus aspectos internos en el futuro.
Respuestas:
Un agente es un programa que mantiene sus claves en la memoria para que solo necesite desbloquearlas una vez , en lugar de cada vez. ssh-agent hace esto para las claves SSH.
Los métodos habituales para iniciar ssh-agent son:
eval `ssh-agent`
- esto ejecuta el agente en segundo plano y establece las variables de entorno apropiadas para la instancia de shell actual .
( ssh-agent , cuando se inicia sin argumentos, genera comandos para que sean interpretados por su shell).
exec ssh-agent bash
- inicia una nueva instancia del bash
shell, reemplazando la actual.
(Con uno o más argumentos, ssh-agent no genera nada, pero inicia el comando especificado: en este caso, el bash
shell, pero técnicamente podría ser cualquier cosa).
A veces se prefiere el segundo método, ya que automáticamente mata a ssh-agent cuando cierra la ventana de terminal. (Al iniciarlo eval
, el agente seguirá ejecutándose, pero inaccesible)
Sin embargo, esto solo inicia un agente vacío. Para hacerlo realmente útil, debe usar ssh-add , que desbloquea sus claves (generalmente ~/.ssh/id_*
) y las carga en el agente, haciéndolas accesibles a las conexiones ssh o sftp .
Además, es posible que desee agregar algunas claves al inicio de la sesión.
Edite su ~/.bashrc
archivo y agregue:
ssh-add &>/dev/null || eval `ssh-agent` &>/dev/null # start ssh-agent if not present
[ $? -eq 0 ] && { # ssh-agent has started
ssh-add ~/.ssh/your_private.key1 &>/dev/null # Load key 1
ssh-add ~/.ssh/your_private.key2 &>/dev/null # Load key 2
}
Comprueba tus llaves con ssh-add -l
Puede detener la sesión actual de ssh-agent con ssh-agent -k
Algo que debe saber sobre ssh-agent y .bashrc es no cargar demasiadas claves. El número predeterminado de intentos para ssh daemon está limitado a 6. Esto se puede modificar /etc/ssh/sshd_config
con el MaxAuthTries
valor.
ssh-add
con "&"? ¿Asume que los archivos de clave privada no están protegidos?