如何设置 OpenSSH 每个用户的身份验证方法?

如何设置 OpenSSH 每个用户的身份验证方法?

我希望能够让一组用户使用公钥认证进行身份验证,而其他用户使用密码认证。

在 Linux 上的 OpenSSH 中可以实现这一点吗?如果可以,我该怎么做?

经过查看/etc/ssh/sshd_config,我发现我只能启用密钥认证或使用 PAM。

答案1

Match指令(在 中描述man sshd_config)允许在一个 sshd 服务器实例中为不同用户指定不同的身份验证方法。除了枚举单个用户和组之外,它还允许通过通配符选择它们。

Match Group wheel                # for users from group wheel:
PubkeyAuthentication
Match Group !wheel,*             # for other users:
PasswordAuthentication
# caution: don't add directives here - they will be caught by "Match" block
# (end of file /etc/ssh/sshd_config)

答案2

可以运行两个不同的 OpenSSH 实例。一个实例配置为 ,PasswordAuthentication另一个配置为PubkeyAuthentication(每个实例绑定到不同的地址)。然后,AllowGroups配置指令将用于控制哪些组可以使用哪个服务器。

但我可能误解了这个问题,因为你说“要么是 PAM,要么是 PublicKey 身份验证”。两者可以同时启用。它们并不互相排斥。

相关内容