[FAILED] Failed to start OpenBSD Secure Shell server Le sujet est résolu

Demande d'aide : c'est ici.
Répondre
Avatar de l’utilisateur
CTparental
Membre
Membre
Messages : 38
Inscription : 14 sept. 2016, 21:29
Contact :
Status : Hors-ligne

je suis sous debian 9 avec les dernières mises a jour.
voici l'erreur que j'ai au boot du pc

Code : Tout sélectionner

[FAILED] Failed to start OpenBSD Secure Shell server
ainsi que le retour du "sudo systemctl status ssh" juste après le boot.

Code : Tout sélectionner

● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2018-04-20 10:34:46 CEST; 2min 12s ago
  Process: 793 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, status=255)
  Process: 782 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 793 (code=exited, status=255)

avril 20 10:34:45 UC-L-8a6272 systemd[1]: Starting OpenBSD Secure Shell server...
avril 20 10:34:46 UC-L-8a6272 systemd[1]: ssh.service: Main process exited, code=exited, status=255/n/a
avril 20 10:34:46 UC-L-8a6272 systemd[1]: Failed to start OpenBSD Secure Shell server.
avril 20 10:34:46 UC-L-8a6272 systemd[1]: ssh.service: Unit entered failed state.
avril 20 10:34:46 UC-L-8a6272 systemd[1]: ssh.service: Failed with result 'exit-code'.

elle ne ce produit que au démarrage du poste si je lance la commande "sudo systemctl start ssh" après le démarrage sa fonctionne parfaitement.
après quelque test il semble que cela vient du fait que j'utilise une ipv6 ( ListenAddress fe80::aaaa:bbbb:cccc:dddd%enp2s0 ) en écoute, car avec l'ipv6 par défault (::) aucun problème
au vue du /lib/systemd/system/ssh.service , le servie attend bien la monter du réseaux (After=network.target) , mais peut être que les linklocal pause problème a ce stade du démarrage??

Code : Tout sélectionner

[Unit]
Description=OpenBSD Secure Shell server
After=network.target auditd.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run

[Service]
EnvironmentFile=-/etc/default/ssh
ExecStartPre=/usr/sbin/sshd -t
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/usr/sbin/sshd -t
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=notify

[Install]
WantedBy=multi-user.target
Alias=sshd.service

solution temporaire trouver , lancer le service via une crontab qui teste sont status et lance au besoins mais c'est moche, peut être que quelqu'un voie une mailleur solution ?
AMD A6-6400K
Radeon HD 7750/8740 / R7 250E 1GDDR5
8G ram DDR3
Debian Sid Xfce lightdm
Avatar de l’utilisateur
Mimoza
Contributeur
Contributeur
Messages : 655
Inscription : 22 avr. 2016, 12:00
Localisation : Terre
Status : Hors-ligne

Peut être regarder aussi ce qu'il y a dans $SSHD_OPT.
Vu que tu as trifouiller ton fichier de config, il nous le faudrait (en l'anonymisant) pour peut être te donner une piste.
Avatar de l’utilisateur
CTparental
Membre
Membre
Messages : 38
Inscription : 14 sept. 2016, 21:29
Contact :
Status : Hors-ligne

voici mon fichier de configuration, comme dit plus haut , sa plante seulement au démarrage de l'ordinateur . une foie le pc démarré un sudo systemctl start ssh le service ce lance sans problème et mon server ssh et fonctionnel .
si je commente ListenAddress fe80::aaaa:bbbb:cccc:dddd%enp2s0 et dé-commente # ListenAddress :: tous fonctionne parfaitement.

Code : Tout sélectionner

Port 22
AddressFamily inet6
ListenAddress fe80::aaaa:bbbb:cccc:dddd%enp2s0
# ListenAddress ::
#SyslogFacility AUTH
#LogLevel INFO
StrictModes yes
PubkeyAuthentication yes
AuthorizedKeysFile	.ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords no
UsePAM no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
PrintMotd no
Banner none
AcceptEnv LANG LC_*
# override default of no subsystems
Subsystem	sftp	/usr/lib/openssh/sftp-server
Match User ctsync
        PasswordAuthentication yes
        ForceCommand /usr/bin/CTctsync_ssh
        AllowTcpForwarding no

voici le contenus du fichier /usr/bin/CTctsync_ssh au cas ou mais je pense pas que cela vienne de la.

Code : Tout sélectionner

#!/bin/sh
case "$SSH_ORIGINAL_COMMAND" in
## on autorise l'ajout de cléf public a authotized_keys ssh-copy-id
exec\ sh\ -c\ \'cd\ \;\ umask\ 077\ \;\ mkdir\ -p\ \.ssh\ \&\&\ \cat\ \>\>\ \.ssh\/authorized_keys\ \|\|\ exit\ 1\ \;\ if\ type\ restorecon\ \>\/dev\/null\ 2\>\&1\ \;\ then\ restorecon\ -F\ \.ssh\ \.ssh\/authorized_keys\ \;\ fi\')
exec sh -c 'cd ; umask 077 ; mkdir -p .ssh && cat >> .ssh/authorized_keys || exit 1 ; if type restorecon >/dev/null 2>&1 ; then restorecon -F .ssh .ssh/authorized_keys ; fi'
exit 0
;;
## on interdit toute les commandes contenant le caractaire & et ;
## si l'on veut autorisée une commande avec l'un de ces caractaires
## il faut l'incéret juste au dessus de ce commantaire 
## la commande doit aitre complette et sans le carractaire générique * . 
*\&*)
exit 10
;;
*\;*)
exit 10
;;
## on autorise le téléchargement rsync mais pas l'upload 
rsync\ --server\ --sender*)
$SSH_ORIGINAL_COMMAND
exit 0
;;
*)
exit 10
;;
esac
AMD A6-6400K
Radeon HD 7750/8740 / R7 250E 1GDDR5
8G ram DDR3
Debian Sid Xfce lightdm
PascalHambourg
Contributeur
Contributeur
Messages : 930
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

Les adresses IPv6 link local ne sont pas prévues pour être utilisées par les services "normaux" comme SSH mais seulement par les services IPv6 de bas niveau.
Ceci dit, le problème serait probablement le même avec une adresse IPv6 globale ou ULA. Si sshd démarre bien un peu plus tard, on peut soupçonner que l'interface enp2s0 n'est pas encore configurée au moment où sshd démarre.
Il faut se méfier des cibles comme network.target. En effet elle ne signifie pas forcément que telle interface a été activée et configurée. Comment l'interface est-elle configurée et gérée ?
Avatar de l’utilisateur
CTparental
Membre
Membre
Messages : 38
Inscription : 14 sept. 2016, 21:29
Contact :
Status : Hors-ligne

PascalHambourg a écrit : 06 mai 2018, 17:23 Les adresses IPv6 link local ne sont pas prévues pour être utilisées par les services "normaux" comme SSH mais seulement par les services IPv6 de bas niveau.
oui c'est ce que j'avais crue comprendre mais , elles ont l'avantage d'avoir un fonctionnement identique aux Automatic Private IP Addressing (APIPA) d'IPV4 , comme en plus elle sont une sorte de dérivée de l'adresse MAC ont est quasiment sûre quelle est unique sur le LAN, elle me permette de faire du LAN ipv6 sans dhcp ipv6 , bref je détourne certainement leur utilisation normal mais j'ai pas trouvais d'autre équivalent a l'APIPA en ipv6 qui en plus reste fixe car lier a la mac.
PascalHambourg a écrit : 06 mai 2018, 17:23Comment l'interface est-elle configurée et gérée ?
pour les interface c'est NetworkManager qui gère a ce qui me semble (install debian9 xfce de base) , mais j’avoue, je c'est pas trop comment m'assurer que les interfaces soit paramétrées avec systemd,
bien qu'il faille sûrement trouver des cibles autres que After=network.target auditd.service , je vais essayer de creuser de ce coté je posterais mes résultats si j'arrive quelque chose.

merci a vous.
AMD A6-6400K
Radeon HD 7750/8740 / R7 250E 1GDDR5
8G ram DDR3
Debian Sid Xfce lightdm
Avatar de l’utilisateur
CTparental
Membre
Membre
Messages : 38
Inscription : 14 sept. 2016, 21:29
Contact :
Status : Hors-ligne

voici ce que je viens de trouver pour ne plus avoir l’erreur au démarrage.
je suis pas sur qu'il n'y ais pas défait de bord , car pas assez de recule.
éditée /lib/systemd/system/ssh.service et remplacer la ligne

Code : Tout sélectionner

After=network.target auditd.service 
par

Code : Tout sélectionner

After=network.target auditd.service network-online.target
AMD A6-6400K
Radeon HD 7750/8740 / R7 250E 1GDDR5
8G ram DDR3
Debian Sid Xfce lightdm
PascalHambourg
Contributeur
Contributeur
Messages : 930
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

Je n'ai pas regardé le séquencement avec systemd, mais auparavant avec sysvinit, NetworkManager était démarré assez tard dans les runlevels 2 à 5, et je ne serais pas étonné qu'il ne démarre pas avant d'autres services réseau comme ssh. Le service "networking" (qui utilise /etc/network/interfaces) démarrait beaucoup plus tôt, dans le runlevel S, avant la plupart des services.

Si la situation le permet, tu peux essayer de configurer l'interface dans /etc/network/interfaces. Ou bien tu peux ajouter une dépendance de ssh sur network-manager.

Ou bien tu peux ajouter une commande qui active simplement l'interface réseau dans la configuration de l'interface lo de /etc/network/interfaces :

Code : Tout sélectionner

up ip link set enp2s0 up
PascalHambourg
Contributeur
Contributeur
Messages : 930
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

Nos messages se sont croisés. Il semble effectivement que network-online.target soit la cible dont tu as besoin. Cf.
https://www.freedesktop.org/wiki/Softwa ... orkTarget/
Répondre