我更改了以下配置:
/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
服务,但ssh
Ubuntu 服务器上有服务。然后
service ssh restart