Solución:
¿Ha intentado simplemente configurar
sudo systemctl enable ssh
?
Así es como tengo mi ssh configurado para ejecutarse al inicio.
**** Lo dejo en la parte anterior de la respuesta en caso de que sea útil para otros que se encuentren con esta publicación ****
Citando mi comentario de arriba:
¿Cómo tiene su configuración de reenvío de puertos? No utilizo ListenAddress en absoluto y las cosas funcionan bien en mi servidor doméstico. Mi enrutador reenvía todo lo que ingresa en un puerto que especifico (22 si desea el puerto estándar, pero puede usar cualquier cosa siempre que no entre en conflicto con otros servicios en su red internacional) a la computadora que quiero. Por ejemplo, cualquier cosa que entre en el puerto 12345 se reenvía al puerto 22 en mi servidor CentOS. Todo lo que entra en 12346 se reenvía al puerto 22 de mi RasPi sin cabeza. Todo lo que entra en 12347 va al puerto 6697 para el portero IRC en mi RasPi
ListenAddress no tiene nada que ver con el desvío de puertos, ListenAdress se puede usar para un servidor que está configurado con múltiples direcciones IP en una o más NIC. Citando desde aquí (toda la página es una buena explicación): https://www.cyberciti.biz/tips/howto-openssh-sshd-listen-multiple-ip-address.html
Supongamos que tiene un total de 8 direcciones IP públicas y una dirección IP privada. Le gustaría vincular sshd a una IP pública seleccionada (por ejemplo, 70.5.xx.xx) y una IP privada (10.1.5.1) solamente.
Afortunadamente, hay una manera fácil de lograr esto usando la opción ListenAddress. Especifica las direcciones locales en las que sshd debe escuchar. Si se omite esta directiva del archivo de configuración, sshd vinculará o enumerará todas las direcciones IP disponibles.
Es para permitir que una de sus múltiples IP acepte conexiones ssh. Supongo que configuró ListenAddress en su IP pública o en la IP interna de su enrutador; supongo que si lo configuró en la IP local de su servidor, habría funcionado bien. Independientemente, ahora sabe cómo funciona ListenAddress y estará listo si tiene que configurar un servidor más complicado. Me alegra saber que hiciste funcionar las cosas.
Como la solución sugerida no funcionó para mí, finalmente descubrí que se necesita un comando adicional para iniciar SSH en el arranque:
sudo update-rc.d ssh defaults
sudo systemctl enable ssh.socket
Algunos mencionaron que este comando:
sudo systemctl enable ssh.service
debe ejecutarse en lugar de este comando:
sudo systemctl enable ssh