我是 Ubuntu 20.04 服务器的管理员,我想让ssh
用户通过密码登录,而不是使用密钥对。
/etc/ssh/ssh_config
主机上的文件如下所示(由其<username>
实际用户名替换):
Host*
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
Match User <username>
PubkeyAuthentication no
PreferredAuthentications password
PasswordAuthentication yes
尽管如此,当他尝试以以下身份登录时:
ssh \<username>@\<host>
他收到一个错误:
Permission denied (publickey)
我究竟做错了什么?
答案1
注意:您必须编辑 ssh 守护程序配置,而不是ssh.config
远程计算机的配置。
我假设 ssh-server 配置为仅基于用户密钥的身份验证,并且在文件中关闭基于密码的身份验证/etc/ssh/sshd_config
。
创建附加配置文件:
openssh-server 的新版本允许创建/etc/ssh/sshd_config.d/*.conf
文件而不是编辑“/etc/ssh/sshd_config”文件。
创建一个新文件/etc/ssh/sshd_config.d/10-password-login-for-special-user.conf
:
sudo nano /etc/ssh/sshd_config.d/10-password-login-for-special-user.conf
添加以下行:
Match User <username>
PasswordAuthentication yes
替换<username>
为特殊用户的用户名。
Ctrl使用+O后跟保存文件。然后按+Enter退出编辑器。CtrlX
通过以下命令重启ssh服务:
sudo systemctl restart ssh.service
现在特殊用户将能够使用密码远程登录,而所有其他用户将继续使用基于密钥的身份验证。
参考文献:
希望这可以帮助