首页
/ Kubekey 在 OpenEuler 24.03 上的 SSH 认证问题分析与解决方案

Kubekey 在 OpenEuler 24.03 上的 SSH 认证问题分析与解决方案

2025-06-30 12:27:33作者:廉彬冶Miranda

问题现象

在使用 Kubekey v3.0.13 部署 Kubernetes 集群到 OpenEuler 24.03 操作系统时,用户遇到了 SSH 认证失败的问题。具体错误信息显示为:"ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain"。

问题分析

这个错误表明 Kubekey 在尝试通过 SSH 连接到目标节点时,无法完成认证过程。系统尝试了 none 和 publickey 两种认证方法,但都失败了。这种情况通常与 SSH 服务配置或密钥认证设置有关。

从用户提供的 SSH 配置文件中,我们可以看到几个关键点:

  1. PubkeyAuthentication 被注释掉了(默认值为 yes)
  2. PasswordAuthentication 设置为 yes
  3. PermitRootLogin 设置为 yes
  4. 使用了 PAM 认证(UsePAM yes

解决方案

经过验证,升级 Kubesphere 并使用新版本的 Kubekey 可以解决此问题。这表明该问题可能与 Kubekey 早期版本对 OpenEuler 24.03 的兼容性有关。

对于遇到类似问题的用户,可以尝试以下解决方案:

  1. 升级 Kubekey 版本:使用最新版本的 Kubekey 工具,确保其对 OpenEuler 24.03 有更好的支持。

  2. 检查 SSH 配置

    • 确保 /etc/ssh/sshd_configPubkeyAuthentication 设置为 yes
    • 确认 AuthorizedKeysFile 指向正确的路径(默认为 .ssh/authorized_keys
    • 检查 PasswordAuthentication 设置是否符合需求
  3. 验证密钥对

    • 确保主控节点有正确的 SSH 密钥对
    • 确认公钥已正确添加到目标节点的 authorized_keys 文件中
  4. SELinux 检查

    • OpenEuler 默认启用 SELinux,确保其不会阻止 SSH 连接
    • 可以使用 setenforce 0 临时关闭 SELinux 进行测试
  5. 防火墙设置

    • 确认防火墙允许 SSH 端口(默认 22)的通信
    • 检查 firewall-cmd --list-all 的输出

最佳实践建议

对于在 OpenEuler 上使用 Kubekey 部署 Kubernetes 集群,建议采取以下最佳实践:

  1. 始终使用 Kubekey 的最新稳定版本
  2. 在部署前验证 SSH 连接是否正常
  3. 确保所有节点的系统时间同步
  4. 检查并统一各节点的 SSH 配置
  5. 考虑使用专门的部署用户而非 root 账户
  6. 部署完成后恢复严格的安全设置

通过以上措施,可以显著提高在 OpenEuler 24.03 上使用 Kubekey 部署 Kubernetes 集群的成功率。

登录后查看全文
热门项目推荐
相关项目推荐