我需要让用户使用不同的身份验证方法登录CentOS系统.有些人使用密码而其他人使用公钥.
我按照这里提到的方法:
How can I setup OpenSSH per-user authentication methods?
但是,我没有成功进行基于密码的登录.
在sshd_config文件中,我有:
AuthenticationMethods keyboard-interactive,publickey PasswordAuthentication no Match User newton PasswordAuthentication yes Match all
更新:
我发现只有当我使用Google身份验证启用了2FA时才会出现此问题,并且我有以下内容:
AuthenticationMethods keyboard-interactive,publickey
[root@localhost]# ssh newton@50.39.213.152 Permission denied (publickey).
任何建议表示赞赏.
解决方法
尽管@Tolsadus的回答可能指向了正确的解决方案,但它并没有清楚地回答这个问题.
简而言之,ssh_config的手册页是一个很好的开始,可以了解ssh中的配置解析器是如何工作的(相同的规则适用于sshd_config):
For each parameter,the first obtained value will be used
这意味着您的示例将为所有用户将PasswordAuthentication设置为no,并且对于newton用户不会覆盖它(因为它已经设置).要解决它,您应该在匹配块中设置默认值.这将对牛顿用户产生预期的影响:
Match User newton PasswordAuthentication yes Match all PasswordAuthentication no