Tengo una lista de servidores:
cat list.txt
10.10.10.10 servera
10.11.10.10 serverb
¿Cómo puedo verificar que puedo iniciar sesión a través de ssh o no? Quiero decir que, por defecto, debería poder iniciar sesión a través de ssh key auth .., así que, en resumen, necesito una solución que clasifique las líneas (servidores) en la lista.txt de esta manera:
- servidores en los que puedo iniciar sesión mediante la clave ssh
- servidores que solicitan contraseña (por supuesto, la contraseña es desconocida ..)
- servidores inalcanzables
ping
No es realmente un buen indicador. Hay muchas configuraciones que permitenssh
conexiones pero no responden a pings.Respuestas:
Puede hacerlo con una combinación de la
BatchMode
opción y "analizar" la salida. (ssh
siempre devuelve 255 si no se conecta por alguna razón, por lo que no puede usar el código de retorno para distinguir entre tipos de fallas).Con
BatchMode
activado, no se intenta solicitar una contraseña u otra interacción, por lo que fallará una conexión que requiera una contraseña. (También puse unConnectTimeout
allí que debería ajustarse para satisfacer sus necesidades. Y elegí nombres de archivo realmente malos).Podría detectar otros tipos de errores (como la falta de clave pública del servidor) si necesita una clasificación más detallada. Si necesita los resultados en un único archivo ordenado, solo
cat
los distintos archivos de salida juntos como mejor le parezca.fuente
Busque las diversas herramientas que automatizan la ejecución de comandos en varios hosts a través de ssh. Por ejemplo, con Mussh :
Masajee la salida según sea necesario.
Nota al margen: ¿por qué está almacenando direcciones IP
list.txt
? Los nombres del servidor son suficientes. Si los nombres que desea usar no son nombres DNS, useHost
directivas en~/.ssh/config
.fuente
esperar proporcionará información para sus comandos interactivos. El cliente ssh con el indicador -v le dirá qué métodos de autenticación acepta el servidor. Si llega a la solicitud interactiva, haga que se cierre. Haz lo que quieras, tienes todo lo que necesitas.
Igual, una orden para gobernarlos a todos, y en la oscuridad, atarlos ... Hum.
fuente
El comando mussh solo generará errores, por lo que puede ejecutarlo sin depurarlo.
fuente