将密钥添加到authorized_users,无需重新启动sshd

将密钥添加到authorized_users,无需重新启动sshd

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

我的问题是:

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

答案1

是否需要重启sshd?

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

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

当 sshd 收到挂断信号 SIGHUP 时,它会通过使用启动时的名称和选项执行自身来重新读取其配置文件,例如/usr/sbin/sshd

sshd 的典型 systemd 服务可以识别这一点,因此您可以这样做systemctl reload sshd

如果重启sshd,当时服务是否中断?

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

答案2

最好的方法是使用

ssh-copyid [email protected]

其中 N 是 IP 地址

或者

ssh-copyid user@fqdn

其中 fqdn 是完全限定域名(例如 server.domain.com)

这不需要重新启动任何守护进程

答案3

就我而言,我需要将密钥添加到 ssh 代理:

ssh-add ~/.ssh/id_rsa

相关内容