Warum nicht ssh.service, sondern sshd.service?

9

Wenn Sie Änderungen vorgenommen haben /etc/ssh/sshd_config, können Sie diese ausführen systemctl restart sshd.service, um die Änderung widerzuspiegeln. Zumindest in meiner Umgebung systemctl restart ssh.servicefunktioniert das auch. Und systemctl --all list-units ssh*sagt mir, dass es keinen Dienst mit dem Namen gibt sshd.service. Warum wird sshd.servicees dann weit verbreitet und tatsächlich gültig?

(Ich weiß, dass der Name des SSH-Daemons lautet, sshdaber dies ist meiner Meinung nach kein vernünftiger Grund.)


Ich habe die folgenden Befehle für linux mint 19( ubuntu-base) und volumio 2( raspbian-base) ausgeführt, die beide auf basieren debian.

systemctl restart sshd.service; echo $? #=> 0
systemctl restart ssh.service; echo $? #=> 0
systemctl --no-legend --all list-units ssh* #=> only ssh.service exists
ynn
quelle
Es gibt keinen ssh.service : Failed to restart ssh.service: Unit ssh.service not found, es sei denn, Ihre Distribution verbindet ihn.
Jasonwryan
ssh wird im Grunde als Client und sshd als Server bezeichnet ... also ist sshd vernünftiger
Bharat
Sie sollten Ihre Distribution angeben, Suse verwendet sshd.service.
RalfFriedl
@RalfFriedl Danke. Ich habe die Verteilungsinformationen hinzugefügt.
ynn

Antworten:

19

Der ssh-Dienst wurde immer ssh in genannt /etc/services, wahrscheinlich unabhängig von der Verteilung, da es sich um das SSH- Protokoll handelt, nicht um den sshdDaemon.

Dann machte es zumindest in der Debian-Implementierung und damit in den Debian-Derivaten Sinn, den gleichen Namen zu wählen, um den Dienst zu starten , wie ... service ssh startwas in den System-V-Stil übersetzt wurde /etc/init.d/ssh.

Dies wurde aus Gründen der Konsistenz erneut in systemd beibehalten, da der Dienst auf alte oder systemd-artige Weise gleichgültig gestartet werden kann. Ein Alias ​​wird jedoch auch für die Kompatibilität mit anderen Distributionen definiert, die eine andere Wahl getroffen haben:

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

Beide können also für Debian und Derivate verwendet werden und repräsentieren denselben Service.

AB
quelle
Vielen Dank. Jetzt verstehe ich die Struktur. Wie Sie sagen, konnte ich die Alias-Deklaration in finden /lib/systemd/system/ssh.service.
Am
6

Wie bereits festgelegt, werden in verschiedenen Distributionen unterschiedliche Namen verwendet.

Für beide gibt es triftige Gründe

  • Der Server wird sshddaher aufgerufensshd.service
  • sshd bedeutet "SSH-Daemon" oder "SSH-Server", daher wäre "SSH-Serverdienst" doppelt so hoch.

Es wäre also eine Frage der Präferenz der Distributoren. Diese Einstellungen können sich auch im Laufe der Zeit ändern. Ich erinnere mich an eine Zeit, als Suse für den Dienstnamen von ntpauf wechselte ntpd.

RalfFriedl
quelle
2
Siehe auch unix.stackexchange.com/a/303302/5132 / askubuntu.com/a/856645/43344 für einen anderen häufig vorkommenden Satz unterschiedlicher Dienstnamen .
JdeBP