Algunas autenticaciones de usuarios SSH fallan en medio de una gran avalancha de autenticaciones de este tipo

Algunas autenticaciones de usuarios SSH fallan en medio de una gran avalancha de autenticaciones de este tipo

Estoy trabajando con un grupo de 20 hosts, todos ejecutando CentOS 7.3.

Estoy intentando crear una prueba automatizada para comprobar que:

  1. Nuestra conectividad de red esperada está implementada.
  2. Nuestra solución SSH Single Sign On (SSO) está funcionando

La conectividad de red esperada es muy simple: es una subred única y plana. Cada host debería poder comunicarse con todos los demás hosts.

Nuestra solución SSH SSO (FreeIPA) utiliza Kerberos para autenticar usuarios y utiliza claves públicas SSH para autenticar hosts. El ticket de concesión de tickets Kerberos (TGT) de un usuario está configurado para reenviar a cualquier host al que el usuario se conecte mediante SSH.

La prueba es muy sencilla:

Haga que cada host intente usar SSH para ejecutarnombre de hostcomo un comando remoto en cualquier otro host.

Para hacer esto, utilizo una utilidad llamadapdsh.

En pocas palabras, esta utilidad utiliza SSH para ejecutar un comando remoto en un conjunto de hosts. Lo hace en paralelo generando un hilo para cada host y en cada uno de esos hilos, ejecutando el comandossh .

Mi uso de este comando es el siguiente. En una máquina que no es uno de los 20 hosts del clúster, ejecuto este comando:

pdsh -g all 'pdsh -g all "hostname"'

-g todosespecifica que el comando remoto debe ejecutarse en todos los hosts del clúster. Como dije, tengo 20 hosts de clúster.

El comando que se ejecutará en cada host remoto es:

pdsh -g all "hostname"

Entonces, como se indicó anteriormente, cada host intenta ejecutar el comando "nombre de host" en todos los demás hosts como un comando remoto a través de SSH.

Entonces, esto da como resultado 20 invocaciones (una por host del clúster) de:

ssh 'pdsh -g all "hostname"'

A su vez, esto da como resultado 20 * 20 = 400 invocaciones de:

ssh <hostname> hostname

Entonces, tengo un total de 20 + 400 = 420 autenticaciones SSH en un período de tiempo muy corto.

El problema que veo es un pequeño puñado de fallas de autenticación. Los hosts en los que se produce el fallo son arbitrarios. No hay ton ni son. Un fallo se parece a esto:

host-5: host-3: Permission denied, please try again.
host-5: host-3: Permission denied, please try again.
host-5: host-3: Received disconnect from UNKNOWN: 2: Too many authentication failures for myuser
host-5: pdsh@host-5: host-3: ssh exited with exit code 255

Tengo lo siguiente configurado en/etc/ssh/sshd_configpara permitir que existan simultáneamente muchas sesiones a autenticar:

MaxStartups 500:30:600

Tenga en cuenta que esto es excesivo: tiene en cuenta la cantidad de autenticaciones que se realizan en todo el clúster, pero en realidad solo necesita tener en cuenta la cantidad de autenticaciones que ocurren en un host determinado. Entonces creo que el problema está en otra parte.

Entonces, en resumen, tengo una gran cantidad de autenticaciones de usuarios SSH a través de Kerberos en un grupo de 20 hosts en un período de tiempo muy corto. Se están produciendo fallos aleatorios en la autenticación de usuarios.

¿Por qué podrían ocurrir tales fallas de autenticación de usuarios?

Respuesta1

Si vuelve a abrir sesiones SSH en los mismos hosts, le recomendaría utilizar conexiones maestras de control. Básicamente, el cliente y el servidor mantienen una sesión autenticada evitando la repetición de la autenticación.

Ver también:ssh_config(5) --ControlMaster

información relacionada