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


29

我对sshd_config文件进行了一些更改,因此需要重新启动。我正在寻找有关对服务器进行物理访问时安全重启ssh的提示,这将是一种HITA PITA。

Answers:


42

通过ssh登录时重新启动sshd不会断开ssh连接。

如果您担心配置,请通过ssh登录几次,然后重新启动。如果您无法再通过新连接进入ssh,则现在可以修复问题。

@MilanBabuškov在下面的评论中提及:sshd -t如果您确实要确定,将测试您的配置的语法正确性。

@Ronald Pottol提出的另一个建议是设置一个cron任务,以已知的有效配置重新启动服务器。也许矫kill过正,但是如果您要更新关键任务服务器等,则有时永远不要太小心。


那很容易,也很有意义。感谢您的迅速答复。仅供参考,我所做的更改非常有效;)
米奇(Mitch


6

如果您可以访问硬件,则可以考虑将终端放在串行端口/ dev / ttyS0上。然后,您可以将后门插入服务器。

只需添加

SO:2345:respawn:/sbin/mingetty ttySO

到/ etc / inittab,终端将在您的串行端口上产生。您可以使用串行端口集中器,也可以使用旁边的服务器中的空调制解调器。


凉!这是很标准的做法吗?
米奇

3
很标准,只要您可以连接到串行终端服务器的机器即可。
卡米尔·基西尔

2
可以,但是由于虚拟化,它不是必需的,因为您可以通过Hypervisor进行管理。另一个很酷的事情是,如果BIOS支持“控制台重定向”,它将通过您的串行控制台显示所有BIOS屏幕。GRUB还可以显示到串行控制台。因此,无需远程视频即可查看服务器是否可以重新联机。
keithosu

4

不用担心,即使新配置出现问题,您当前的会话也不会断开。

应用新配置并重新启动sshd之后,只需尝试登录几次并查看日志以查看一切是否正常。


3

或者,如果您感到不幸,请使用cron或在工作中启动它以进行备份?


cron还是at可以复制一个“已知”的工作(即旧配置),然后重新启动服务...
cpbills 2010年


0

我发现如今sshd,重新启动时并不会断开您的会话,尤其是当它是基于Redhat的发行版时。您总是可以编写一个小的脚本,该脚本将自动sshd从备份中还原您的配置,并sshd在5分钟后作为a cronatjob 重新启动。这将确保即使断开连接,您也至少可以重新进入服务器。


-1

我不建议在sshd连接上重新启动/重新加载SSHD。我见过很多情况,由于sshd_config中的语法错误,sshd不会启动。

即使配置文件一切正常,它还是有风险的。


9
您可以使用sshd -t预先测试配置文件。
米兰·巴布斯科夫,2010年

谢谢米兰,我迅速在man上寻找了一个类似的选项,在Apache的-s中,所以我一定太关注-s了。
米奇

我将把您的评论吸收到我的答案中,而且当sshd终止时,它也不会降低打开的ssh会话的时间,但是很高兴知道您的语法是否有效,如果您出汗的话。
cpbills 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.