Tener la clave ssh protegida por passphrase está muy bien, en caso de robo el atacante tendrá que superar un segundo obstáculo, pero también es muy engorroso tener que meter la passphrase cada vez que queremos conectar a algún servidor, para ello tenemos ssh-agent que nos preguntará el password una vez y lo cacheará. De este modo tendremos la key protegida y nuestro trabajo como sysadmin seguirá siendo igual de ágil.
Para iniciar ssh-agent en el arranque de las X es tan sencillo como meter un eval ssh-agent y un ssh-add antes de iniciar el gestor de ventanas, según el sistema Unix que utilicemos tendremos que hacerlo de un modo u otro.
FreeBSD:
vi .xinitrc
setxkbmap es
xrdb .Xresources
xbindkeys &
shutter --min_at_startup &
export SSH_ASKPASS=/usr/local/bin/x11-ssh-askpass ;export SSH_ASKPASS
eval `ssh-agent -s`
ssh-add &
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session awesome
Linux:
vi .xinitrc
setxkbmap es
xrdb /home/kr0m/.Xresources
eval `/usr/bin/ssh-agent`
/usr/bin/ssh-add < /dev/null
exec dbus-launch --sh-syntax --exit-with-session awesome
Si por alguna razón matamos el ssh-agent y no queremos rearrancar las X podemos arrnacarlo manualmente:
ssh-add
Pero debemos añadir la siguiente configuración en el .bashrc para que compruebe si existe un agent previo:
#
# ssh-agent configuration
#
if [ ! -z "$(pgrep ssh-agent)" ]; then
export SSH_AGENT_PID=$(pgrep ssh-agent)
export SSH_AUTH_SOCK=$(find /tmp/ssh-* -name agent.*)
fi