为authorized_users添加密钥,无需重启sshd

use*_*500 8 linux ssh sshd ssh-keygen

我正在尝试向服务器添加公钥,但我不想重新启动 sshd 服务以使其生效。原因是重新启动 ssh 服务似乎对当时可以使用 ssh 服务的其他用户造成破坏。大多数文档建议添加一个公钥$HOME/.ssh/authorized_keys,然后重新启动sshd服务 ( systemctl restart sshd)。感兴趣的操作系统是 Linux。

我的问题是:

  1. sshd需要重启吗?
  2. 如果sshd是重启,那个时候有没有服务中断?
  3. 有没有办法使用 ssh 设置无密码身份验证,而无需sshd在添加新公钥后重新启动服务$HOME/.ssh/authorized_keys

Olo*_*rin 16

是否需要重启sshd?

通常不会。Linux 发行版通常带有允许公钥身份验证的默认配置,因此您通常甚至不必编辑配置即可启用它,因此无需重新启动。即使在您必须对 执行某些操作的情况下,您sshd_config也只需在编辑该文件后重新启动它一次,而不是在授权密钥文件之后的每次编辑时重新启动它。

请注意,您甚至不必重新启动 sshd。来自man sshd

当 sshd 收到挂断信号 SIGHUP 时,它会重新读取其配置文件,方法是使用它开始时的名称和选项执行自身,例如/usr/sbin/sshd.

sshd 的典型 systemd 服务认识到这一点,因此您可以systemctl reload sshd改为这样做。

如果sshd重启了,那个时候是不是服务中断了?

取决于您对服务中断的定义。简单地重新启动 sshd 不会终止现有的 ssh 连接,但在 sshd 完成重新启动之前不会接受新连接。