我使用证书通过 SSH 访问我的服务器。我已在同一台服务器上配置了一个使用密码连接的用户,但使用 Putty 时,服务器似乎只提供证书登录,因为我收到以下错误:
“没有可用的受支持的身份验证方法(服务器发送的公钥、gssapi-keyex、gssapi-with-mic)”
我确实进入/etc/ssh/sshd_config
以启用PasswordAuthentication yes
并重新启动了 sshd,但这似乎没有任何作用。sshd_config 有一行包含单独的 .conf 文件,我已将其包含在内/etc/ssh/sshd_config.d/50-redhat.conf
。在这里我还添加了PasswordAuthentication yes
。
我发现/var/log/secure
以下内容:
5 月 10 日 12:42:54 [用户] sshd[2053]: 正在验证用户 [用户] [源 ip] 端口 60374 [预认证] 已关闭连接
需要说明的是:我没有机会输入密码。
我还应该在哪里寻找实现基于证书和基于密码的 SSH 访问的可能性?
答案1
找到了我的答案,将其留在这里以供后人参考。
问题似乎是现在有多个 ssh 配置,而不仅仅是/etc/ssh/sshd_config
。 在我的例子中(ubuntu 22.04),有一个鬼鬼祟祟的文件/etc/ssh/sshd_config.d/60-cloudimg-settings.conf
,其中只有一行,PasswordAuthentication no
这毁了我的生活!!!!
用这个修复了它:
grep -r PasswordAuthentication /etc/ssh -l | xargs -n 1 sed -i 's/#\s*PasswordAuthentication\s.*$/PasswordAuthentication yes/; s/^PasswordAuthentication\s*no$/PasswordAuthentication yes/'
另外,service ssh restart
没有工作,没有错误,只是没有做任何事情,需要使用systemctl restart ssh.service
。
答案2
在 sshd_config 中将 KbdInteractiveAuthentication 设置为“yes”,然后重启。PasswordAuthentication 还不够