linux

如何为某些用户禁用 SSH 密码验证

场景:

  • 禁止拥有root权限的用户,通过密码进行身份验证(强制要求秘钥验证)
  • 允许普通用户,通过密码进行身份验证

单独处理上面的每个场景这不难办到,但是想同时满足上面的条件,得通过下面的方法来设置。

打开配置文件
vim /etc/ssh/sshd_config
修改配置文件
  • 如果要禁用所有用户的 SSH 身份验证,请在文件中查找 PasswordAuthentication 指令,并将其设置为 No。(ssh默认允许密码身份验证)
     PasswordAuthentication no
  • 如果要禁用特定用户(例如 user1、user2)的密码身份验证,则使用 Match User 指令将上述 PasswordAuthentication 规则仅应用于这些用户。
     Match User user1,user2
         PasswordAuthentication no
  • 如果您想为特定用户组(例如 users)中的所有用户禁用密码验证,请使用 Match Group 条件仅匹配这些用户,如下所示。
     Match Group users
         PasswordAuthentication no
  • 如果要禁用除 root 用户以外的所有用户的密码验证,也可以使用否定运算符来指定。
     Match User !root
         PasswordAuthentication no
保存并关闭配置文件
重启ssh服务
sshd -t && systemctl restart sshd

留言

您的电子邮箱地址不会被公开。 必填项已用 * 标注