El problema
Los siguientes mensajes se registran al reiniciar el servicio sshd en un sistema 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 solución
Cuando IPv6 e IPv4 están habilitados simultáneamente, IPv6 primero se vincula en el puerto 22 a todas las IP IPv6 disponibles (::) cuando se inicia el servicio sshd. Entonces, cuando las IP IPv4 (0.0.0.0) intentan vincularse en el mismo puerto, el sistema registrará el mensaje de error anterior. Eso es porque el puerto ya está siendo utilizado por direcciones IP IPv6.
También puede verificar lo mismo en la salida de netstat.
# netstat -anp | grep sshd tcp 0 0 :::22 :::* LISTEN 9302/sshd
Para resolver el problema, siga los pasos que se describen a continuación:
1. Edite el archivo de configuración de sshd /etc/ssh/sshd_config y elimine el comentario de la siguiente línea:
# vi /etc/ssh/sshd_config ListenAddress 0.0.0.0
2. Reinicie el servicio sshd nuevamente para que los cambios surtan efecto.
# service sshd restart
3. Los registros similares a los siguientes deben registrarse en el archivo /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. También puede verificar la salida del comando netstat para confirmar si el puerto 22 de sshd solo escucha direcciones IPv4.
# netstat -anp | grep sshd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 8977/sshd