Bloquee periódicamente las claves ssh mientras esté conectado

Bloquee periódicamente las claves ssh mientras esté conectado

Utilizo ssh diariamente para iniciar sesión en un par de servidores que administro y uso una clave ssh para iniciar sesión. Debido a que generé mi clave ssh con una contraseña, la primera vez que uso ssh en un día, se me solicita una contraseña. Quiero que esto se vuelva a bloquear periódicamente a lo largo del día, de modo que alguien que tenga acceso a mi computadora portátil mientras está encendida no necesariamente tenga acceso a los servidores. No puedo encontrar una opción para esto y tampoco puedo encontrar un comando para bloquear la llave. Si existe tal comando, podría agregarlo a crontab.

Probablemente la mejor opción sea simplemente no utilizar una clave ssh.

Respuesta1

Probablemente tengas un programa llamado ssh-agenten ejecución. Cuando se dirige ssha otro host, el sshcomando se comunica con ese ssh-agentpara mantener las claves y sus frases de contraseña.

De forma predeterminada, ssh-agentrecuerda las frases de contraseña para siempre (hasta cerrar sesión), por lo que solo tienes que ingresarlas una vez para cada clave.

El comandossh-addse utiliza para gestionar la lista de identidades que ssh-agent conoce.

Para mostrar la lista de claves que ssh-agentconoce, emita

ssh-add -l

Para hacerloolvidarsus claves y frases de contraseña, problema

ssh-add -D

Cuando ingrese ssha algún host, nuevamente se le solicitará la frase de contraseña.

También es posible suministrar untoda la vidapara una frase de contraseña:

ssh-add -t 3600     # 1 hour

pero esto no funcionó para mí (o hice algo mal). Configuraría un cronjob que se realiza ssh-add -Dcada N horas. Esto puede ser un poco complicado porque ssh-addnecesita que la variable de entorno SSH_AUTH_SOCKse comunique con el ssh-agenty esa variable presumiblemente no esté configurada en cron.

Pero, como se indica en un comentario, no debes dejar tu computadora portátil desatendida mientras estás fuera, sino bloquearla con llave.

Respuesta2

¿Podría simplemente escribir una línea en su $HOME/.bash_logoutarchivo que mueva su clave SSH de su ~/.ssh/directorio a un directorio diferente? Luego haz lo contrario en $HOME/.bash_login.

Vea esta publicación sobre cómo hacer esto con systemd.

información relacionada