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

Jenkins执行SSH连接EC2时权限拒绝,调整密钥权限仍失败

SSH连接EC2实例失败排查方案

错误信息

+ ssh -i /home/ubuntu/myphpApp/key.pem ubuntu@xx.xx.xx.xx /bin/bash
Warning: Identity file /home/ubuntu/myphpApp/key.pem not accessible: Permission denied.
ubuntu@xx.xx.xx.xx: Permission denied (publickey).
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 255
Finished: FAILURE

已尝试将密钥文件权限设置为400、600、777,但问题仍未解决。

排查步骤

  • 检查密钥文件的所有者与所属组:
    执行ls -l /home/ubuntu/myphpApp/key.pem查看文件所属,确保执行SSH命令的用户(比如Jenkins Pipeline的运行用户)是文件所有者,或拥有读取权限。若运行用户为jenkins,可执行chown jenkins:jenkins /home/ubuntu/myphpApp/key.pem修改所有者。
  • 检查父目录权限:
    密钥文件所在目录/home/ubuntu/myphpApp/需保证运行用户有进入权限,执行ls -ld /home/ubuntu/myphpApp/查看,目录权限建议设置为700(仅所有者可访问)或750,避免过开放导致SSH拒绝读取密钥。
  • 确认执行命令的用户身份:
    在Pipeline中添加whoami命令,确认当前运行SSH的用户,避免因用户身份不匹配导致权限问题。
  • 验证密钥文件有效性:
    执行ssh-keygen -y -f /home/ubuntu/myphpApp/key.pem,若输出对应公钥则密钥有效,若报错则说明文件损坏或不是合法私钥,需重新获取正确的EC2密钥对。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 11:42:33