我更改了文件中的配置
/etc/ssh/sshd_config
但仅在重新启动服务器后生效。如何在不重启服务器的情况下进行更改?
我更改了文件中的配置
/etc/ssh/sshd_config
但仅在重新启动服务器后生效。如何在不重启服务器的情况下进行更改?
Answers:
sudo service ssh restart
不会这样做。您需要重新启动sshd,而不是ssh:
sudo service sshd restart
sudo service ssh restart
效果很好,而sudo service sshd restart
报告为“ sshd:无法识别的服务”。不知道为什么这会有所不同...
无需重新启动SSH服务,就可以采用一种更轻松的方式来执行此操作。
来自man sshd
:
当sshd收到挂断信号SIGHUP时,它会以其名称和启动选项(例如/ usr / sbin / sshd)执行自身,从而重新读取其配置文件。
因此,您可以使用类似以下的命令将SIGHUP发送到SSH服务器进程:
sudo kill -SIGHUP $(pgrep -f "sshd -D")
该pgrep -f "sshd -D"
部件将仅返回侦听新连接的sshd守护程序进程的PID,因为每个活动会话中可能还有其他不需要信号的PID。
sudo pkill -HUP sshd
吗?
sshd
进程的活动客户端。sudo pkill -HUP -f "sshd -D"
是一个诱人的选择,但是pkill会通知其自身的sudo
父级,因为其完整的命令行与其自身的搜索模式相匹配。您可以想出一个与自身不匹配的模式,例如... -f "sshd -[D]
,但是会使事情有些混乱。我认为pgrep方法对于学习者来说是很容易的。
作为根检查
service --status-all | grep ssh
我没有sshd
服务,但是ssh
在Ubuntu服务器上有服务。然后
service ssh restart
sudo service ssh restart
重新启动服务来使它生效。但是请记住,如果通过SSH连接,则会话将终止。