使用Knife Bootstrap创建Chef节点时,EC2实例登录需密码问题求助
解决Knife Bootstrap AWS Ubuntu实例要求输入密码的问题
核心原因及解决步骤
1. 修正密钥文件路径格式
GitBash环境下需将Windows格式路径转为类Unix格式,把D:\DevOpsClass\DevopsClass.pem替换为/d/DevOpsClass/DevopsClass.pem,重新执行bootstrap命令:
knife bootstrap 52.65.76.66 -U ubuntu --sudo -i "/d/DevOpsClass/DevopsClass.pem" -N node01 --chef-license accept
2. 调整密钥文件权限
SSH对密钥文件权限要求严格,需在GitBash中设置权限为600:
chmod 600 /d/DevOpsClass/DevopsClass.pem
执行完权限修改后再重新运行bootstrap命令。
3. 先验证SSH连接可用性
单独用SSH命令测试能否登录EC2实例,确认密钥和网络正常:
ssh -i "/d/DevOpsClass/DevopsClass.pem" ubuntu@52.65.76.66
若此命令无法登录,排查以下点:
- 实例安全组是否开放22端口给你的本地IP
- 密钥文件是否为创建EC2实例时指定的那一份
- 实例是否处于正常运行状态
4. 自定义SSH端口(若有修改)
如果EC2实例修改了默认SSH端口,需在bootstrap命令中添加-p参数指定端口,例如:
knife bootstrap 52.65.76.66 -U ubuntu --sudo -i "/d/DevOpsClass/DevopsClass.pem" -N node01 -p 2222 --chef-license accept
内容的提问来源于stack exchange,提问作者Suス
相关产品推荐
相关产品推荐

