在SSH是唯一访问模式的计算机上重新启动SSH

我对sshd_config文件进行了一些更改,因此需要重新启动。 我正在寻找安全地重新启动ssh的技巧,当物理访问服务器将是一个痛苦的PITA。

当通过sshlogin时重新启动sshd不会断开你的ssh连接。

所以,如果你担心你的configuration,通过SSHlogin几次,然后重新启动。

如果您不能再使用新的连接ssh,您现在可以修复这些问题。

下面在Milan Babuškov的评论中提到:如果你真的想确定, sshd -t会testing你的configuration是否正确。

Ronald Pottol另一个build议是设置一个cron任务来重新启动已知的工作configuration的服务器。

也许是矫枉过正,但是如果你正在更新关键任务服务器等等,有时你永远不会太小心。

如果你有权访问硬件,你可以考虑把一个terminal放在串口/ dev / ttyS0上。 那么你可以有一个后门进入你的服务器。

只需添加

 SO:2345:respawn:/sbin/mingetty ttySO 

到你的/ etc / inittab,一个terminal会产生你的串口。 您可以使用串行端口集中器,也可以使用旁边服务器的空调制解调器。

不要担心,即使新configuration出现问题,您的当前会话也不会断开连接。

应用新configuration并重新启动sshd后,只需尝试login几次,并查看日志,看看是否一切正常。

或者,如果你觉得运气不好,或者使用cron或者在工作中开始备份?

你能不能在SSH服务的PID中运行kill -HUP? 它不干净,但它的作品

我发现,现在sshd在重新启动时不会断开你的会话,特别是当它是基于Redhat的发行版时。 您可以随时编写一个小脚本,它会自动从备份中恢复sshdconfiguration,并在cron或作业5分钟后重新启动sshd 。 这将确保即使断开连接,至less可以返回到服务器。

我不build议在sshd连接上重新启动/重新加载SSHD。 我见过很多场合,因为sshd_config中的语法错误,sshd不会启动。

即使configuration文件一切正常,也是有风险的。