Ubuntu 22.04 : SSH server ne démarre pas automatiquement après reboot [SOLVED]

Bonjour
J'ai un server Proxmox.
Dedans, des conteneurs.

Je crée un nouveau conteneur Ubnuntu 22.04, avec Virtualmin / Webmin.

SSH fonctionne si je le démarre manuellement (logon OK).
Mais si je reboot le conteneur, le sshd n'est PAS démarré !

Le SSH est à l'arrêt et je dois manuellement le démarrer depuis Webmin ou via la console Proxmox.

Pq ce SSH ne démarre pas tout seul ?

J'ai essayé les commandes du genre "systemctl stop start disable enable" etc…
rien ne change !
SSH fonctionne correctement QUE si je le démarre manuellement après le reboot du conteneur…

Une idée ?

Merci et bon après-midi.

Bonjour,

que disent les logs ?

Cordialement, janus57

je n'ai rien trouvé dans les logs…

Qd je démarre SSHD, je vois des classiques clients SSH qui essayent de se connecter et se font jeter (moi ça va).
Mais pas vu de msg d'erreur de la tâche SSH dans /var/log/syslog.

Je vais encore vérifier mais je dois partir maintenant.
Merci Janus

J'ai évidemment chercher dans les menus de config de Webmin, mais rien qui permette de dire "ok démarre SSH après reboot ou pas" …

SSH est lancé sur quel port en théorie, le 22 ?

Il faudrait essayer :

> systemctl enable ssh.socket

Et reboot. Si ça ne marche toujours pas,il faut vérifier que le port indiqué dans : /lib/systemd/system/ssh.socket est le même que dans /etc/ssh/sshd_config

oui, j'ai modifié sur un port du genre 1234, mais que ce soit le 22 ou le 1234, ça ne change rien :

- après reboot, le SSH ne fonctionne pas
- je dois démarrer manuellement le SSH, ensuite le ssh fonctionne

SYSLOG :

Je fais un logrotate juste avant le reboot pour avoir peu de log.

* logrotate
* reboot
* Je teste le SSH. ça ne fonctionne pas
* Je cherche "ssh" dans /var/log/syslog : RIEN

* service ssh start : ok ça fonctionne

--------------------------
Après reboot :

# ps -aux | grep ssh
root 1715 0.0 0.0 7016 2092 pts/3 S+ 17:42 0:00 grep --color=auto ssh

càd qu'aucune tâche "ssh" ne tourne !

#service ssh start

alors je vois la tâche SSH :

# ps -aux | grep ssh
root 1598 0.0 0.2 15444 8752 ? Ss 17:47 0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root 1600 0.0 0.0 7016 2092 pts/3 S+ 17:47 0:00 grep --color=auto ssh



--------------------------
# systemctl enable ssh.socket

reboot
test SSH : ne fonctionne pas

La commande "systemctl enable ssh.socket" s'est terminée sans message, mais ça ne change rien.
Après reboot, pas de serveur SSH actif !

rien dans syslog !

Merci


/lib/systemd/system/ssh.socket


Le fichier /lib/systemd/system/ssh.socket contient :
ListenStream=22

Il faut mettre :
ListenStream=1234

Je vais essayer ça…
MAIS
dans mon autre conteneur en Ubuntu 20.04, j'ai

[Unit]
Description=OpenBSD Secure Shell server socket
Before=ssh.service
Conflicts=ssh.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run

[Socket]
ListenStream=22 <----
Accept=yes

[Install]
WantedBy=sockets.target

Je n'ai jamais dû modifier cela dans les autres conteneurs pour que SSH fonctionne après reboot

Conteneur 20.04

reboot

# ps -aux | grep ssh
root 237 0.0 0.1 12208 6808 ? Ss 21:04 0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root 837 0.0 0.0 8172 656 pts/3 S+ 21:04 0:00 grep --color=auto ss

J'ai rebooté le conteneur 20.04. SSH tourne. Je n'ai pas dû le démarrer.

après avoir mis

-----------------
Le fichier /lib/systemd/system/ssh.socket contient :
ListenStream=22

Il faut mettre :
ListenStream=1234
-----------------

J'ai fait : systemctl disable ssh

puis

# systemctl enable ssh
Synchronizing state of ssh.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable ssh
Created symlink /etc/systemd/system/sshd.service → /lib/systemd/system/ssh.service.
Created symlink /etc/systemd/system/multi-user.target.wants/ssh.service → /lib/systemd/system/ssh.service.

reboot

ps -aux | grep ssh
root 1105 0.0 0.0 7016 2220 pts/3 S+ 21:12 0:00 grep --color=auto ssh


et le ssh ne tourne toujours pas.

Merci

> systemctl enable ssh.socket

ssh.socket est censé lancé ssh au premier accès à ssh, il ne tournera pas tant qu'aucun accès est fait. C'est ssh.socket qui écoute sur le port et qui lance ssh.service
C'est la théorie lue sur google, je n'ai pas de conteneur mais c'est ce que j'ai compris du fonctionnement.

Bonsoir Christophe

Oui, ça fonctionne !

Donc, si j'ai bien compris, le serveur SSH ne démarre PAS après le reboot, mais systemd le lance au 1er appel SSH… sur le port 22 … et évidemment ça ne fonctionnait pas avec mon port 1234.

En modifiant le port dans ssh.socket, ensuite systemd va lancer SSH au 1er appel sur le port 1234.

--------------------------
Le fichier /lib/systemd/system/ssh.socket contient :
ListenStream=22

Il faut mettre :
ListenStream=1234
--------------------------

ça semble fonctionne !

Mais je n'ai jamais dû faire cela avant avec mes précédents conteneurs Ubuntu 18.04 ou 20.04…

Peut-être que j'avais fait la modif du port autrement ?

Le principal est que j'ai compris. ça fonctionne.
Et j'ai appris une chose de plus.

Merci