¿Cómo guardo una frase de contraseña de clave SSH para un proceso desatendido?

He creado la clave RSA protegida por contraseña. La clave pública se instala en el servidor remoto en authorized_keys en el directorio .ssh del usuario.

Desde la solicitud del servidor, puedo ingresar SSH en el servidor remoto sin problemas, pero debo ingresar una frase de contraseña cada vez que hago esto.

Quiero usar esta clave para un servidor Munin para SSH en un nodo Munin y obtener datos, por lo que el procedimiento falla debido a la frase de contraseña.

He pensado en dos opciones:

  1. Eliminar la contraseña de la clave.
  2. ¿Guardar la frase de contraseña en algún lugar, tal vez en un archivo de configuración?

¿Hay una solución mejor?

Creo que ssh-agent debe hacer algo como esto, pero no puedo encontrar información concisa al respecto.

Puedes usar ssh-agent para hacer esto. Le permite almacenar una frase de contraseña en la memoria, en lugar de en el disco. Hay una buena explicación de cómo hacer esto para trabajos por lotes aquí: http://www.akadia.com/services/ssh_agent.html .

Esencialmente, usted:

  1. Ejecute ssh-agent en segundo plano como el usuario que iniciará la conexión SSH.
  2. Use el comando ssh-add para agregar la clave al agente. Se le pedirá la frase de contraseña.

Puede automatizar la ejecución de ssh-agent agregándolo a una secuencia de comandos ejecutada en el inicio, pero aún necesita cebar manualmente el agente con la clave para ingresar la frase de contraseña. Por lo tanto, si reinicia, por ejemplo, deberá recordar hacer esto.

El punto a considerar es lo que está tratando de lograr al tener una frase de contraseña en la clave que se está utilizando, dado que este es un sistema automatizado.

  1. Si usa una clave con una frase de contraseña y la almacena en un archivo de configuración, es probable que cualquiera que obtenga acceso a la clave también tenga acceso al archivo de configuración, ya que ambos deben ser accesibles por el mismo usuario.
  2. Si utiliza ssh-agent para almacenar la frase de contraseña, deberá ejecutarse en la misma máquina que la clave. Sería más difícil eliminar la contraseña de la memoria que de un archivo, pero acaba de hacer que su trabajo sea más difícil y no imposible. Sin embargo, si obtienen la clave sin acceder a la máquina (por ejemplo, desde una copia de seguridad), esta opción es más segura.
  3. Si no establece una contraseña en absoluto, alguien que reciba la clave no tiene más trabajo que hacer para poder usarla.

En estos tres escenarios, sería prudente planificar lo peor y tomar medidas para minimizar el daño que podría ocasionar una persona que obtiene acceso a una clave utilizable. Por ejemplo, usted podría:

  • Utilice una cuenta de usuario específica que solo tenga acceso a los datos que se están recuperando.
  • Utilice una clave que solo se utiliza para este propósito.
  • Restringir desde qué host puede el propietario de la clave SSH.
  • Restrinja los comandos que se pueden ejecutar con la tecla, vea esto .

En general, solo usted puede sopesar los pros y los contras de estos enfoques, y si un proceso manual es aceptable en su situación.

Intereting Posts