禁用特定用户的SSH密码login

我将其添加到sshd_config文件的底部

Match User user PasswordAuthentication no 

然后我重新启动SSH,当我去SSH到我的服务器时,我得到了错误

 Permission denied (publickey) 

我如何做到这一点,使特定的用户可以login到服务器,而无需input密码或需要密钥?

SSH假设你正在使用某种types的身份validation,无论是密码,密钥身份validation,Kerberos等等。通过设置PasswordAuthentication no ,你只是告诉你的sshd它不应该允许它作为一种可能的身份validation方法。 不过,它仍然需要某种authentication。

我想如果你确实真的想禁用所有的身份validation,那么有一种方法可以使用PAM来做到这一点,但是这是一个非常非常不明智的做法。

不要这样做。

如果设置正确,密钥validation与使用无密码一样透明,并且更安全。

你可能想看看rsh与rhosts文件。 这是不安全的,但没有身份validation的ssh也是如此。 我build议你设置无密码的SSH密钥,如果你需要做这样的事情。