Mi equipo administra muchos servidores, y la política de la compañía establece que las contraseñas en estos servidores se deben cambiar cada dos semanas. A veces, nuestra base de datos oficial de contraseñas se desactualiza por cualquier motivo (la gente olvida actualizarla, generalmente), pero no podemos identificar esto a veces hasta meses después, ya que no utilizamos sistemáticamente todos los servidores.Cómo usar bash/espero verificar si funciona un inicio de sesión SSH
Quiero escribir un script que raspe las contraseñas de la base de datos y use esas contraseñas para intentar un inicio de sesión (ssh) en cada servidor cada noche y envíe un correo electrónico con los resultados al equipo. Puedo rastrear la base de datos para obtener información de inicio de sesión, pero No estoy seguro de cómo comprobar si el inicio de sesión de ssh fue exitoso o no en esperar.
No puedo usar la autenticación de clave pública para esta tarea. I quiero autenticación de contraseña para poder verificar las contraseñas.
que deshabilitar la autenticación de clave pública especificando el siguiente archivo:
PasswordAuthentication=yes
PubkeyAuthentication=no
Mis intentos en el guión esperar:
# $1 = host, $2 = user, $3 = password, $4 = config file
expect -c "spawn ssh [email protected]$1 -F $4
expect -re \".*?assword.*?\"
send \"$3\n\"
...
send \'^D\'"
pensé que tal estado de salida podría indicar el éxito? Sin embargo, no pude encontrar nada en las páginas de manual.
¿Quién cambia la contraseña? Quizás también deberían ser responsables de actualizar la base de datos. Poner la contraseña en este tipo de script parece frustrar el propósito de cambiar la contraseña con frecuencia. – chepner
La contraseña no entra en el script. Las contraseñas se eliminan de una base de datos y se pasan como argumentos de línea de comandos al script, lo cual tiene mucho sentido para mí. Y a pesar de que las personas tienen la responsabilidad de actualizar la base de datos, a menudo no lo hacen. Esta es una verificación de cordura para asegurarse de que todas las contraseñas de la base de datos sean correctas. – BlackSheep