El agente SSH pierde identidad al reiniciar la máquina

El agente SSH pierde identidad al reiniciar la máquina

Después de crear claves con nombre id_rsaen su ubicación predeterminada. Estoy agregando identidad al agente SSH con el comando ssh-add ~/.ssh/id_rsa. Se está agregando correctamente.

Puedo SSH sin ingresar la contraseña de la clave, ya que ya está con el Agente SSH.

Pero, cuando reinicio la máquina o el servidor y luego verifico la identidad con el comando, ssh-add -Lrecibo un mensaje como The agent has no identities.

¿Eso significa que cuando reiniciamos la máquina, el Agente pierde su identidad? ¿Es este comportamiento normal o hay algo que me falta aquí?

Por favor guíame, no estoy muy familiarizado con SSH.

Respuesta1

Es normal. El propósito de un agente de claves es simplemente conservar las claves descifradas.en memoria, pero nunca los escribirá en el disco. (Eso anularía el propósito; ¿por qué no simplemente desproteger la clave principal?)

Por lo tanto, las claves deben desbloquearse en cada inicio de sesión, y es necesario automatizar esto; en Linux, usar pam_sshes una opción; automáticamenteutiliza la contraseña de su sistema operativopara desbloquear al agente. Otro módulo similar es pam_envoy, que es un poco más confiable que yo sepa (pero requiere systemd).

Ambos módulos iniciarán el agente y cargarán las claves automáticamente.

Respuesta2

En OS X, ssh-add tiene un indicador especial para conectarse a Keychain si decide almacenar su clave privada allí.

Solo corre ssh-add -K ~/.ssh/id_rsa.

Creo que esto responde más completamente a tu pregunta. Es difícil encontrar documentación para este indicador específico de OS X, pero ha estado funcionando al menos desde OS X Leopard.

Respuesta3

Intenta hacer esto a tu~/.bashrc:

if [ ! -S ~/.ssh/id_rsa ]; then
  eval `ssh-agent`
  ln -sf "$SSH_AUTH_SOCK" ~/.ssh/id_rsa
  ssh-add
fi
export SSH_AUTH_SOCK=~/.ssh/id_rsa

Esto sólo debería solicitarle la contraseña una vez que haya iniciado sesión.

Respuesta4

Es necesario desbloquearlo después de cada reinicio para poder cargarlo en la memoria. Para hacer esto, agregue lo siguiente a su ~/.bashrc:

eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa

No nombre un par de claves id_rsacuando lo cree. Asigne a las claves un nombre significativo relacionado con el recurso al que intenta acceder. Puede ser cualquier cosa, no hay nada especial en el nombre predeterminado id_rsa.

información relacionada