我知道我可以禁用 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 User
或Match 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
。