93 votes

Qu'est-ce qui cause l'erreur SSH : kex_exchange_identification: Connection closed by remote host ?

J'ai mis en place un serveur SSH en ligne accessible publiquement par n'importe qui. En conséquence, je reçois beaucoup de connexions à partir d'adresses IP du monde entier. Bizarrement, aucune d'entre elles ne tente effectivement de s'authentifier pour ouvrir une session. Je peux moi-même me connecter et m'authentifier sans aucun problème.

De temps en temps, je reçois l' erreur : kex_exchange_identification: Connection closed by remote host dans les journaux du serveur. Quelle en est la cause ?

Voici 30 minutes de journaux SSH (les adresses IP publiques ont été masquées) :

# journalctl SYSLOG_IDENTIFIER=sshd -S "03:30:00" -U "04:00:00"
-- Les journaux commencent le ven. 2020-01-31 09:26:25 UTC, se terminent le lun. 2020-04-20 08:01:15 UTC. --
20 avr 03:39:48 myhostname sshd[18438]: Connexion depuis x.x.x.207 port 39332 sur 10.0.0.11 port 22 rdomain ""
20 avr 03:39:48 myhostname sshd[18439]: Connexion depuis x.x.x.207 port 39334 sur 10.0.0.11 port 22 rdomain ""
20 avr 03:39:48 myhostname sshd[18438]: Connexion fermée par x.x.x.207 port 39332 [preauth]
20 avr 03:39:48 myhostname sshd[18439]: Connexion fermée par x.x.x.207 port 39334 [preauth]
20 avr 03:59:36 myhostname sshd[22186]: Connexion depuis x.x.x.83 port 34876 sur 10.0.0.11 port 22 rdomain ""
20 avr 03:59:36 myhostname sshd[22186]: error: kex_exchange_identification: Connection closed by remote host

Et voici ma configuration SSH :

# ssh -V
OpenSSH_8.2p1, OpenSSL 1.1.1d  10 Sep 2019
# cat /etc/ssh/sshd_config 
UsePAM yes
AddressFamily any
Port 22
X11Forwarding no
PermitRootLogin prohibit-password
GatewayPorts no
PasswordAuthentication no
ChallengeResponseAuthentication no
PrintMotd no # traité par pam_motd
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 /etc/ssh/authorized_keys.d/%u
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com
LogLevel VERBOSE
UseDNS no
AllowUsers root
AuthenticationMethods publickey
MaxStartups 3:100:60

Après avoir cherché sur le web, j'ai vu des références à MaxStartups indiquant que cela pourrait être la raison de cette erreur mais après avoir changé la valeur par défaut comme indiqué dans mon sshd_config et en essayant plus de 3 connexions, le serveur indique clairement le problème

20 avr 07:26:59 myhostname sshd[31468]: abandon de la connexion #3 depuis [x.x.x.226]:54986 sur [10.0.0.11]:22 après MaxStartups

Alors, quelle est la cause de l' erreur : kex_exchange_identification: Connection closed by remote host ?

0voto

digital Points 1

Dans mon cas, la création de la clé SSH à partir d'une variable protégée dans Gitlab CI, j'ai dû supprimer la protection sur cette variable pour que cela fonctionne.

0voto

Red Cricket Points 462

Dans mon cas, j'essayais de me connecter en ssh à une VM Ubuntu tournant sous VirtualBox. J'avais omis d'installer openssh-server sur la VM.

sudo apt-get install openssh-server

Cela a résolu le problème.

0voto

obeliksz Points 83

Déconnectez-vous de la connexion VPN.

Dans mon cas cela a résolu le problème.

-1voto

assayag.org Points 99

Vous pourriez simplement être connecté au mauvais port.

Vérifiez le port exact !

Vous pouvez spécifier un port personnalisé en utilisant ssh -p port user@host

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X