如何在 SSH 中同时允许 root 用户和受限用户?

如何在 SSH 中同时允许 root 用户和受限用户?

是否可以(如果可以,如何)执行以下操作openssh-server

  • 能够root使用密钥而非密码来验证用户身份
  • 能够non-root使用密钥而非密码来验证用户身份
  • 防止用户使用自己的密钥non-root登录root
  • 要做到这一点sshd,只需使用一个TCP port

是的,我非常清楚PermitRootLogin yes期权的风险。

答案1

这应该是“开箱即用的”,并且不需要做任何其他事情,只需将用户公钥放入服务器上相应用户的 .ssh/authorized_keys 文件中即可。(如果用户没有此文件,请创建它!)

唯一要注意的是,如果非 root 用户公钥被添加到服务器的 root/.ssh/authorized_keys,那么该非 root 用户将能够以 root 身份登录服务器 - 因此为了避免这种情况,不要将他们的密钥添加到根的 authorized_keys 文件中。

您已经遇到了 PermitRootLogin - 当然,需要在服务器上启用它。您可以(可选)限制谁可以从哪里登录(如果有的话),方法是添加一行,例如“AllowUsers[电子邮件保护] [电子邮件保护]user2”——它只允许来自特定 IP 地址的 root 和 user1,但 user2 可以从任何地方登录。您可以根据需要使用尽可能多的用户/ip 组合来扩展此功能。

相关内容