You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chef Server引导节点失败:SSH认证错误问题求助

排查Chef Knife Bootstrap SSH认证失败问题

核心错误为:

WARN: [SSH] connection failed, terminating (#<Net::SSH::AuthenticationFailed: Authentication failed for user ec2-user@172.31.20.187>)
ERROR: Train::Transports::SSHFailed: SSH session could not be established

以下是针对性排查步骤:

1. 验证SSH密钥的可用性与权限

  • 测试基础SSH连接:先跳过Knife,直接用SSH命令验证密钥能否正常登录目标节点:
    ssh -i node1.key.pem ec2-user@172.31.20.187
    
    如果此命令也失败,说明密钥本身无效,需确认该密钥是目标节点ec2-user的合法密钥(公钥已添加到节点/home/ec2-user/.ssh/authorized_keys中)。
  • 修复密钥文件权限:SSH要求私钥文件权限必须为600,否则会拒绝使用,执行:
    chmod 600 node1.key.pem
    

2. 检查目标节点的SSH配置与目录权限

  • 确认公钥认证开启:登录目标节点,检查/etc/ssh/sshd_config中是否包含:
    PubkeyAuthentication yes
    
    若未开启,修改后重启sshd服务:
    sudo systemctl restart sshd
    
  • 修复用户目录权限:目标节点上ec2-user的家目录及SSH相关目录权限必须符合要求:
    chmod 700 /home/ec2-user
    chmod 700 /home/ec2-user/.ssh
    chmod 600 /home/ec2-user/.ssh/authorized_keys
    

3. 调整Knife命令参数

原命令中--ssh-user已被弃用,改用官方推荐的--connection-user参数,避免潜在兼容性问题:

knife bootstrap 172.31.20.187 --connection-user ec2-user --sudo -i node1.key.pem -N node1

4. 预处理主机指纹(可选)

手动将目标节点的SSH主机指纹加入本地known_hosts,避免Knife执行时的交互干扰:

ssh-keyscan 172.31.20.187 >> ~/.ssh/known_hosts

5. 升级Chef Workstation版本

报错中出现常量重复初始化的警告,说明当前使用的Chef 15.0.300存在已知bug,升级到最新稳定版Chef Workstation(如20.x系列)可修复此类问题。

内容的提问来源于stack exchange,提问作者Prince kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:56:18