Si inicia sesión en una sesión gráfica, organice el inicio ssh-agentdurante el inicio de la sesión. Algunas distribuciones ya lo hacen por ti. Si el suyo no lo hace, organice la ejecución ssh-agentdesde el script de inicio de sesión o desde su administrador de ventanas. Cómo hacerlo depende de su entorno de escritorio y su administrador de ventanas. Por ejemplo, si inicia su administrador de ventanas manualmente, simplemente reemplace la llamada a my_favorite_wmpor ssh-agent my_favorite_wm.
No comience ssh-agentdesde .bashrco .zshrc, ya que estos archivos son ejecutados por cada nuevo shell interactivo. El lugar para comenzar ssh-agentes en un archivo de inicio de sesión como .profileo .xsession.
Si desea usar el mismo agente SSH en todos los procesos, sin importar desde dónde inició sesión, puede hacer que siempre use el mismo nombre de socket, en lugar de usar un socket con nombre aleatorio. Por ejemplo, puede poner esto en su ~/.profile:
export SSH_AUTH_SOCK=~/.ssh/ssh-agent.$HOSTNAME.sock
ssh-add -l 2>/dev/null >/dev/null
if [ $? -ge 2 ]; then
ssh-agent -a "$SSH_AUTH_SOCK" >/dev/null
fi
$? -ge 2es porque el código de salida 1 es cuando el agente ssh no tiene claves, pero el agente ssh ya se está ejecutando.