不同账户有不同的ssh认证策略

不同账户有不同的ssh认证策略

我知道我可以禁用 root 用户使用明文密码的 SSH 身份验证(使用PermitRootLogin),并为所有其他用户启用它。但我需要禁用某些用户的文本密码用户列表(并且只保留公钥认证)。对于未列入列表中的用户,我还需要启用密码认证。

那么,如何为不同的用户调整不同的 SSH 策略?在 sshd_config 中,我只发现了 2 个参数:

PermitRootLogin without-password  # disable text password for root
PasswordAuthentication yes  # enable it for all other users

我想要一些字典风格的配置,例如:

user1Auth without-password
user2Auth without-password
user3Auth yes
...

PS我的操作系统是Ubuntu 14.04。

答案1

您可以使用Match UserMatch Group指令:

Match Group usergroup
    PasswordAuthentication no

如果不想使用组,可以指定每个用户:

Match User user1,user2
    PasswordAuthentication yes

Match User user3
    PasswordAuthentication no

我倾向于永远不直接向用户分配权限(无论在哪个系统),所以我总是使用组。这还有一个好处,就是你可以更改组成员身份,而无需重新启动 sshd。

如果您确实需要重新启动 sshd,可以使用 systemd 来完成:

systemctl restart ssh.service

注意:此配置行必须写在所有其他配置下方/etc/sshd_config

相关内容