Le problème
Les messages suivants sont enregistrés lors du redémarrage du service sshd dans un système CentOS/RHEL 5/6.
Dec 14 00:15:19 geeklab sshd[9182]: Received signal 15; terminating. Dec 14 00:15:19 geeklab sshd[9274]: Server listening on :: port 22. Dec 14 00:15:19 geeklab sshd[9274]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
La solution
Lorsque IPv6 et IPv4 sont activés simultanément, IPv6 se lie d'abord sur le port 22 à toutes les adresses IP IPv6 disponibles (::) lorsque le service sshd est démarré. Ainsi, lorsque les adresses IP IPv4 (0.0.0.0) tentent de se lier au même port, le système enregistre le message d'erreur ci-dessus. C'est parce que le port est déjà utilisé par les IP IPv6.
Vous pouvez également vérifier la même chose dans la sortie netstat.
# netstat -anp | grep sshd tcp 0 0 :::22 :::* LISTEN 9302/sshd
Pour résoudre le problème, suivez les étapes décrites ci-dessous :
1. Modifiez le fichier de configuration sshd /etc/ssh/sshd_config et décommentez la ligne ci-dessous :
# vi /etc/ssh/sshd_config ListenAddress 0.0.0.0
2. Redémarrez à nouveau le service sshd pour que les modifications prennent effet.
# service sshd restart
3. Les journaux similaires à ceux ci-dessous doivent être enregistrés dans le fichier /var/log/messages.
Dec 14 00:35:23 geeklab sshd[9274]: Received signal 15; terminating. Dec 14 00:35:23 geeklab sshd[9301]: Server listening on 0.0.0.0 port 22.
4. Vous pouvez également vérifier la sortie de la commande netstat pour confirmer si le port sshd 22 écoute uniquement les adresses IPv4.
# netstat -anp | grep sshd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 8977/sshd