ssh-agent debian 13 y keepassxc (systemd)

Iniciando ssh-agent en debian 13 desde systemd + keepassxc

How does ssh-agent works (bits and bytes in the protocol)?

Video en ingles para entender como funciona ssh-agent de 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 %t refiere 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.

keepassxc ssh-agent

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.

keepassxc 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.