Que signifie l'erreur banner exchange: Connection dans les logs de ssh?

Tags: #<Tag:0x00007f9565718480>

Bonjour,

dans les logs ssh de mon serveur dédié, càd dans le fichier /var/log/auth.log,
que signifie ces logs :

Jan  3 11:00:14 ns sshd[3816135]: error: kex_exchange_identification: banner line contains invalid characters
Jan  3 11:00:14 ns sshd[3816135]: banner exchange: Connection from xxx.xxx.xxx.xxx port 65291: invalid format
Jan  3 14:56:32 ns sshd[3829568]: error: kex_exchange_identification: Connection closed by remote host
Jan  3 14:56:32 ns sshd[3829568]: Connection closed by xxx.xxx.xxx.xxx port 54383
Jan  3 17:03:32 ns sshd[3837596]: error: kex_exchange_identification: banner line contains invalid characters
Jan  3 17:03:32 ns sshd[3837596]: banner exchange: Connection from xxx.xxx.xxx.xxx port 38262: invalid format
Jan  3 17:03:36 ns sshd[3837598]: error: kex_exchange_identification: client sent invalid protocol identifier ""
Jan  3 17:03:36 ns sshd[3837598]: banner exchange: Connection from xxx.xxx.xxx.xxx port 38314: invalid format
Jan  3 17:05:05 ns sshd[3837723]: error: kex_exchange_identification: client sent invalid protocol identifier "GET / HTTP/1.1"
Jan  3 17:05:05 ns sshd[3837723]: banner exchange: Connection from xxx.xxx.xxx.xxx port 35408: invalid format
Jan  4 03:32:38 ns sshd[3862094]: Connection closed by xxx.xxx.xxx.xxx port 57726 [preauth]
Jan  4 05:17:34 ns sshd[3863624]: error: kex_exchange_identification: Connection closed by remote host
Jan  4 05:17:34 ns sshd[3863624]: Connection closed by xxx.xxx.xxx.xxx port 53269
Jan  4 15:39:47 ns sshd[3883975]: error: kex_exchange_identification: Connection closed by remote host

Merci d’avance

Sur quel port ton serveur sshd écoute et sur quel port le client essaye-t-il de se connecter? c’est un message qui peut se produire quand le client essaye de se connecter sur un serveur https au lieu d’un sshd.

Bonsoir,

le port de serveur ssh est 2255 (au lieu de 22), et je crois savoir d’où vient l’erreur car j’ai réussi à reproduire moi-même l’erreur, en faisant telnet mon_serveur 2255, comme ceci :

telnet mon_serveur 2255
Trying XX.XX.XX.XX...
Connected to mon_serveur.
Escape character is '^]'.
SSH-2.0-OpenSSH_8.4p1 Debian-5+deb11u3

puis quand je tape GET / HTTP/1.1, vu que c’est une mauvaise commande, la connexion ssh se ferme automatiquement en affichant l’erreur qui a causé la fermeture de la connexion ssh :

GET / HTTP/1.1
Invalid SSH identification string.
Connection closed by foreign host. 

Et dans le auth.log côté serveur, je retrouve l’erreur :

Jan  5 20:51:08 ns sshd[3968924]: error: kex_exchange_identification: client sent invalid protocol identifier "GET / HTTP/1.1"
Jan  5 20:51:08 ns sshd[3968924]: banner exchange: Connection from xxx.xxx.xxx.xxx port 1944: invalid format

Donc c’est probablement une personne qui essaye de se connecter sur le port ssh de mon serveur dédié en utilisant telnet.

Hello @fluo

Je viens de faire ta manip chez moi eet j’ai bien, dans les logs du serveur, le premier message " error: kex_exchange_identification:…"

mais pas le 2ème " banner exchange:…’

Est-ce que tu n’aurais pas dans ta config du serveur (sshd_config) une directive « Banner » qui renvoit vers un fichier avec des caractères non reconnus?

J’ai une configuration openssh-server basique, celle par défaut du système debian, j’ai juste changé le numéro de port dans le fichier sshd_config en remplaçant 22 par 2255.

Je sais que les logs peuvent différer d’une version de openssh-server à l’autre, j’utilise openssh-server version 1:8.4p1-5+deb11u3

L’IP source du cl ient est une IP que tu connais ou ça vient directement d’internet?

Lorsque je reproduis l’erreur pour me connecter en ssh à mon serveur dédié distant, j’utilise en tant que client, mon pc qui est connecté à la freebox, donc l’ip source du client est l’ip publique de la freebox.

Donc les autres ip sources des autres clients dans les logs proviennent aussi d’internet.