我的所有 Ubuntu 服务器上的公钥 SSH 身份验证都失败了

我的所有 Ubuntu 服务器上的公钥 SSH 身份验证都失败了

好吧,这是一个棘手的问题

在过去的几个月里,我所有的 ubuntu 16.04 服务器都停止接受公钥 SSH 身份验证,只接受密码。我尝试了一些方法:

  1. 审计与 ssh 相关的所有文件权限
  2. 使用 ssh-copy 将公钥重新复制到服务器
  3. 停止 sshd,apt-purge 所有 SSH 和相关软件包,然后重新启动并重新安装 - 这将重置 sshd_config 并重新密钥服务器
  4. 在客户端使用大位生成新密钥(4096)
  5. 以及我能找到的有关这个主题的几乎所有其他内容。

几个有趣的观点:

  1. 所有 ubuntu 服务器都安排了无人值守升级来应用安全更新。它们都在同一时间停止工作。没有进行其他软件更改
  2. 所有服务器均跨多个平台虚拟化。有些在 VMware 客户机上,有些在 KVM 非特权 LXC 容器中,有些作为 KVM 客户机。
  3. 全新安装运行良好。
  4. 基于 Debian 的服务器没有出现此故障。
  5. ssh-connection method none [preauth]除了非工作服务器与工作服务器之外,调试日志不会提供任何权限失败、kex 失败或任何其他线索ssh-connection method publickey [preauth]。(下面是完整的客户端和服务器日志)
  6. 客户端机器、密钥和软件完全相同
  7. 如果我通过命令行启动 sshd,我就可以很好地使用公钥连接。
  8. 通过 do-release-upgrade 从 16.04 升级到 18.04 并不能解决问题,问题仍然存在。

Ubuntu 客户端和服务器故障日志: https://pastebin.com/Tg3pu8Nw

Debian 客户端和服务器成功(相同的客户端机器和密钥): https://pastebin.com/aG5ddrQ5

任何帮助将不胜感激。

答案1

好吧,我想我应该让每个人都知道,以防他们遇到同样的问题。似乎我们使用的防火墙设备正在拦截和深度扫描 SSH。这破坏了公钥认证。禁用 SSH 深度检查后,问题就解决了。

相关内容