Almacenando las credenciales de SSH, necesita descifrarlas más adelante para la conexión mediante el script de Python

-2

Estoy desarrollando una aplicación donde se pueden agregar las credenciales de SSH para los servidores y luego una secuencia de comandos automática de Python puede obtener esas credenciales para iniciar sesión en el servidor y realizar ciertas tareas automatizadas.

El problema al que me enfrento es cómo almacenar de forma segura las credenciales de SSH en mi servidor para que la secuencia de comandos de python pueda recuperar esas credenciales de forma segura y realizar sus tareas. Además, dado que las credenciales de varios servidores se guardarían en mi aplicación, si mi servidor se ve comprometido, el atacante tendrá acceso a muchos servidores

Obviamente, no puedo cifrar las contraseñas, ya que la secuencia de comandos de Python requeriría la contraseña real para iniciar sesión en el servidor. ¿Cuál podría ser el enfoque recomendado y los algoritmos criptográficos que puedo usar para almacenar de forma segura todas las credenciales?

    
pregunta Aneesh Relan 18.05.2018 - 12:53
fuente

1 respuesta

-1

Por favor no hagas esto. En absoluto. O cualquier variación de la misma.

Si continúas tomando esta ruta, tendrás una brecha desagradable para limpiar. En una escala de tiempo suficientemente larga, es una certeza.

La única forma correcta de almacenar contraseñas es en un hash con sal con permisos muy restrictivos, que no se pueden usar para lo que pides. Para almacenar las credenciales, deberá bloquearlo en un solo usuario o cuenta raíz y cambiarlo a 400. En teoría, podría ejecutar el script de Python como un usuario específico (o cuenta de servicio) y hacer que ESTE usuario sea el propietario del archivo, pero nuevamente: almacenar contraseñas en texto sin formato nunca es, bajo ninguna circunstancia, una buena idea, ya que los permisos de los archivos pueden ser objeto de abuso. Si alguien comprometiera su servidor y obtuviera la raíz, debería cambiarlos de todos modos y ahora ha pasado de un solo servidor comprometido a muchos servidores comprometidos. Sin embargo, es probable que uno ni siquiera necesite obtener una raíz para ver este archivo si no lo configura correctamente.

Si está almacenando contraseñas para otros servidores, sería mucho mejor usar un par de llaves. Mantenga la clave privada en el servidor remoto y use ssh-copy-id para enviar la clave de pub al servidor en el que está almacenando las claves. Si bien esto no llega a su fin de almacenar una contraseña, es el método más seguro para almacenar las credenciales de muchos otros servidores.

    
respondido por el SomeGuy 18.05.2018 - 16:42
fuente

Lea otras preguntas en las etiquetas