我想设置用户登录时的身份验证顺序。
Match User user
PasswordAuthentication no
MaxAuthTries 5
AuthenticationOrder "publickey,password"
Match all
PasswordAuthentication yes
AuthenticationMethods "publickey,password" "publickey,keyboard-interactive"
我想设置用户,如果他没有公钥,就用密码。如果他有公钥,就登录。
所有用户都需要有一个公钥和密码才能登录。
答案1
您可以尝试Allow User user
像这样修改该部分:
Match User user
PasswordAuthentication yes
MaxAuthTries 5
AuthenticationMethods publickey password
当您将身份验证方法列为逗号分隔列表时,用户必须完成列出的所有方法。将方法列为空格分隔列表将尝试每种方法,直到一种方法成功。因此,我的建议是,如果publickey
身份验证成功,则授予用户访问权限,如果身份验证失败,则将要求输入密码。
另外,请确保将PasswordAuthentication
位更改为是,因为您必须明确启用列出的任何身份验证方法。
查看 sshd 手册页以了解更多信息:OpenSSH sshd_config 手册页#身份验证方法