How does ssh-agent works (bits and bytes in the protocol)?
Video en ingles para entender como funciona
ssh-agentde fondo.
Si almacenamos varias llaves ssh o si estas mismas las utilizamos desde equipos diferentes, es recomendable poder gestionarlas de manera segura y no teniendo que hacer una sincronizacion de archivos (llaves) entre diferentes equipos.
Una solución es utilizar Keepasxc y mantener nuestra base de llaves ordenada y cifrada.
Para poder acceder a estas llaves, sin la necesidad de copiar y pegar cada una en nuestro equipo, podemos conectar nuestro proceso de ssh-agent con Keepassxc.
Primero tenemos que lograr que ssh-agent inicie automáticamente al iniciar sesión con nuestro usuario y esto lo podemos hacer utilizando systemd. En el caso de debian 13, no incluye un servicio listo para activar, por lo que lo crearemos en el siguiente contenido en la ruta ~/.config/systemd/user/ssh-agent.service
[Unit]
Description=SSH Agent
[Service]
Type=simple
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK
[Install]
WantedBy=default.target
la variable
%trefiere al path/run/user/<uid>/
Luego activamos el servicio: systemctl --user enable --now ssh-agent
y por ultimo agregamos a nuestro archivo ~/.bashrc la variable SSH_AUTH_SOCK que es la que tambien utilizara keepassxc para intercomunicar el ssh-agent.
En este punto es bueno reiniciar el equipo para ver que el ssh-agent inicie correctamente y nuestra terminal tome la variable correctamente.
Por ultimo en keepassxc tenemos que acceder a Tools > Settings y seleccionar la pestaña de SSH Agent
Tenemos que activar la integracion SSH AGENT y verificar que haya tomado la variable SSH_AUTH_SOCK como la establecimos anteriormente.
Por ultimo tenemos que configurar dentro de cada ssh que tengamos creada en keepassxc la posibilidad de que esta sea utilizada por el ssh-agent.
Luego de que este todo configurado podemos revisar si nuestras llaves de keepassxc estan conectadas con nuestro ssh-agent con el comando ssh-agent -l que nos listara las keys ssh disponibles.