Significado de "Conexión cerrada por xxx [preauth]" en registros sshd


54

Tenemos un script por lotes de Windows, que se conecta automáticamente a un servidor Linux a través de PLINK (masilla). NO hay autenticación de clave privada pública, el usuario y la contraseña están en el script.

En nuestro servidor Linux tenemos varias entradas de registro sshd (/ var / log / messages):

sshd[7645]: Connection closed by xxx [preauth]

¿Cuál podría ser la causa de tal mensaje?
"preauth" supuestamente significa "pre autenticación"?

A veces, en la entrada, "cerrado por" tiene la dirección IP del cliente de Windows, otra vez está la dirección IP del servidor Linux en "cerrado por". ¿Alguien sabe la diferencia entre la dirección IP del cliente y la dirección IP del host en el mensaje?


Cuando se observa en /usr/local/sbin/sshd -D -e, posible solución alternativa: serverfault.com/a/211176
Ivan Chau

Estoy experimentando el mismo problema y, en mi caso, lo he reducido al hecho de que la misma clave funciona desde un shell de ubuntu en un ubuntu real que se ejecuta como una VM y no desde el ubuntu incrustado en Windows 10 (AKA Windows Linux Subsystem) . No han descubierto por qué aún, pero tal vez esto ayuda todavía a alguien
Jens Kisters

Compruebe /var/log/securecon LogLevel DEBUG3en/etc/ssh/sshd_config
Ivan Chau

Respuestas:


24

El sshdservidor se desconectará si el cliente no intenta autenticarse en un cierto período de tiempo, como se documenta en la -gopción.

 -g login_grace_time
         Gives the grace time for clients to authenticate themselves
         (default 120 seconds).  If the client fails to authenticate
         the user within this many seconds, the server disconnects
         and exits.  A value of zero indicates no limit.

Así que sospecho que si ve la IP del servidor en los registros con este mensaje, la conexión se cerró porque no se produjo ningún intento de autenticación dentro de este tiempo de gracia. Cuando vea la IP del cliente, significa que el usuario cerró su cliente (o el script finalizó) sin hacer un intento de autenticación.


¿Puede ser causado, por ejemplo, por el escaneo nmap?
Qback

Esto suele ser intentos de pirateo. Veo mucho de China, Rusia, Japón, etc.
jjxtra

3
Si la dirección IP en el mensaje es la dirección IP del cliente, puede indicar que el cliente está intentando autenticarse con la frase de contraseña incorrecta para su clave privada. Su cliente no puede decodificar la clave y se desconecta sin intentar la autenticación.
Code Commander

7

En mi caso, estos mensajes aparecieron en / var / log / secure cuando estaba experimentando Host key verification failed.errores en el lado del cliente ssh. Este es uno de los casos que daría lugar a una conexión sin un intento de inicio de sesión.


4

Tuve un problema muy similar al tuyo (aunque estaba usando clave pública).

Resulta que mi problema, y ​​posiblemente el suyo, fue causado porque mi directorio de inicio era un montaje NFS, y selinux (en CentOS 7) estaba arrojando algunos errores (que eran bastante difíciles de rastrear). Sin embargo, la solución fue simple.

setsebool -P use_nfs_home_dirs 1 

2

Otra fuente de este tipo de mensajes es ssh-keyscan. Simplemente toma las claves de host del servidor y se desconecta sin realizar ninguna autenticación.


2

Una fuente de estos mensajes es https://sshcheck.com/ que muestra posibles debilidades en su servidor ssh.

Provoca aproximadamente 4 de estos mensajes de forma secuencial.


1

Tuve el mismo problema, lo resolví así:

En el servidor ssh, eliminé el comentario y puse en los siguientes valores en / etc / ssh / sshd_config

 RSAAuthentication yes
 PubkeyAuthentication yes

Y entonces:

sudo service sshd restart

0

Encontré la misma situación, debido a que la iptablesregla INPUT era DROP, pero ACEPTO el host ansible, pero no hay una reglaiptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

El registro de errores "Nov 3 01:34:50 debian sshd[29378]: Connection closed by 10.17.64.13 [preauth]"se escribió en "/var/log/auth.log"la máquina del cliente después de ansible all -m pingejecutar el comando en el host ansible.

Porque el paquete de ping había sido recibido por el cliente pero no había regresado al host ansible.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.