Ubuntu 22.10 不允许使用密码进行 SSH(在 Ubuntu 22.04 中有效)

Ubuntu 22.10 不允许使用密码进行 SSH(在 Ubuntu 22.04 中有效)

通常我使用共享密钥通过 ssh 连接到我们的 Ubuntu 服务器。这样可行。

有时我会更改 /etc/ssh/sshd_config 并设置“PasswordAuthentication yes”以允许某人使用密码进行连接。如果他们在不使用 -i 选项指定密钥的情况下进行连接,系统将提示他们输入密码

这种行为似乎在最新的 Ubuntu 22.10 中有所改变

即使在 sshd_config 中将 PasswordAuthentication 设置为 yes,尝试在没有密钥的情况下进行 ssh 时,也会给出错误“权限被拒绝(公钥)”,而不会提示输入密码

我的 Ubuntu 服务器可以追溯到 18 世纪,这种行为是新的。

我比较了 22.04 服务器(提示输入密码)和 22.10 服务器(不提示输入密码)之间的 sshd_config 文件,所有选项的配置都完全相同

知道我遗漏了什么吗?

谢谢

答案1

您将其视为操作系统的事情,但据我了解,Ubuntu 本身与 SSH 无关,这将由 SSHD 处理,具体取决于正在运行的 ssh 守护程序(我假设是 OpenSSH 服务器,因为这通常是 Ubuntu 自带的)。

从表面上看,上个月发布了一个新版本的 OpenSSH Server(版本9.1- 2022 年 10 月 4 日)9.0于 2022 年 4 月 8 日发布。我不确定 Ubuntu 22.04 和 22.10 中打包的默认版本是什么。

快速浏览发行说明并没有发现任何与您的情况特别相关的内容,它似乎是一个小版本,但我不确定您遇到这个问题多久了。

可能只需检查出现问题的机器上的 SSHD 版本 ( ssh -V) 与您之前使用的版本,如果不同,您可以恢复并查看是否能解决问题。如果能,您可能需要深入研究 OpenSSH 文档以查明实际的根本原因。

如果我错了,这确实是 Ubuntu 的问题,也许询问 Ubuntu会更了解。

答案2

我今天偶然发现了同样的问题。所有文档都表明包含PasswordAuthentication yes在内/etc/ssh/sshd_config。经过进一步调查,我注意到启用了一个包含配置选项。Include /etc/ssh/sshd_config.d/*.conf

这是您正在寻找的路径....

选项1:禁用继承/etc/ssh/sshd_config # Include /etc/ssh/sshd_config.d/*.conf并设置PasswordAuthentication yes

选项 2: cd /etc/ssh/sshd_config.d
ls查找包含以下内容的条目PasswordAuthentication no(这将覆盖在 中输入的任何配置/etc/ssh/sshd_config)并将值设置为是。 PasswordAuthentication no
希望这对您有所帮助。

相关内容