当您修改后/etc/ssh/sshd_config
,您可以执行systemctl restart sshd.service
以反映更改。至少在我的环境中也systemctl restart ssh.service
有效。并systemctl --all list-units ssh*
告诉我没有任何名为 的服务sshd.service
。那么为什么它被sshd.service
广泛使用并且实际上有效呢?
(我知道 ssh 守护进程的名称是, sshd
但我认为这不是合理的原因。)
linux mint 19
我在( ubuntu
-base)和volumio 2
( -base)上执行了以下命令raspbian
,这两个命令都是基于debian
.
systemctl restart sshd.service; echo $? #=> 0
systemctl restart ssh.service; echo $? #=> 0
systemctl --no-legend --all list-units ssh* #=> only ssh.service exists
答案1
ssh 服务在 中始终被命名为 ssh /etc/services
,可能无论发行版如何,因为它是SSH协议,而不是sshd
守护进程。
那么这是有道理的,至少在 Debian 实现以及 Debian 衍生品中,选择了相同的名称来启动服务as ...service ssh start
翻译成 system-V 风格/etc/init.d/ssh
。
这被保留在 systemd 中,再次是为了一致性,因为服务可以以旧式或 systemd 式方式无差别地启动。尽管如此,还定义了别名以与做出不同选择的其他发行版兼容:
[Install]
WantedBy=multi-user.target
Alias=sshd.service
因此两者都可以在 Debian 及其衍生版本上使用,并且它们代表相同的服务。
答案2
正如已经确定的,不同的发行版使用不同的名称。
两者都有正当理由
- 服务器被调用
sshd
,因此sshd.service
sshd
意思是“SSH Daemon”或“SSH Server”,因此“SSH Server Service”将是双倍的。
因此,这将是发行版维护者的偏好问题。这些偏好也可能会随着时间的推移而改变,我记得有一次 Suse 的服务名称从ntp
改为。ntpd