对于 Systemd 系统(Ubuntu 默认)

对于 Systemd 系统(Ubuntu 默认)

我更改了以下配置:

/etc/ssh/sshd_config

但更改仅在重启服务器后才生效。如何在不重启的情况下应用更改?

答案1

如果您要远程重启,应先检查配置以确保它不会启动失败:

sudo sshd -t

如果成功,只需重新启动 sshd 服务:

sudo systemctl restart sshd

答案2

还有一种更不具侵入性的方法可以做到这一点,无需重新启动 SSH 服务。

man sshd

当 sshd 收到挂断信号 SIGHUP 时,它会通过使用启动时的名称和选项(例如 /usr/sbin/sshd)来重新读取其配置文件。

因此,您可以使用如下命令向 SSH 服务器进程发送 SIGHUP:

sudo kill -SIGHUP $(pgrep -f "sshd -D")

pgrep -f "sshd -D"部分将仅返回监听新连接的 sshd 守护进程的 PID,因为每个活动会话可能存在其他不需要信号的 PID。

答案3

对于 Systemd 系统(Ubuntu 默认)

sudo systemctl reload sshd.service

或者

 sudo systemctl reload sshd

或者

 sudo /bin/systemctl reload sshd.service

对于 Sysvinit / Systemd(Linux from Scratch 默认和 Unix 系统)

sudo service sshd reload

或者

sudo /etc/init.d/sshd reload

Ubuntu 使用 systemd:此处的service命令将单元:启动、停止、状态和重新加载传递到它们的 systemctl/initctl 等效项。

答案4

以 root 身份检查

service --status-all | grep ssh

我没有sshd服务,但sshUbuntu 服务器上有服务。然后

service ssh restart

相关内容