Jenkins连接Amazon Linux 2023实例SSH认证失败求助
解决Jenkins通过SSH连接Amazon Linux 2023实例的认证失败问题
针对你遇到的Jenkins Publish Over SSH插件连接Amazon Linux 2023实例出现Auth fail,但相同配置能连接Amazon Linux 2的问题,可按以下步骤排查解决:
检查SSH登录用户与实例配置
Amazon Linux 2023默认禁用root用户远程SSH登录,且对用户目录权限要求严格:- 确认Jenkins SSH配置中使用的是
ec2-user(而非root),这是AL2023的默认登录用户。 - 登录AL2023实例,检查
ec2-user家目录下的SSH密钥权限:- 执行
chmod 700 ~/.ssh设置目录权限 - 执行
chmod 600 ~/.ssh/authorized_keys设置密钥文件权限
- 执行
- 检查
/etc/ssh/sshd_config配置,确保以下参数开启:
修改后重启sshd服务:PubkeyAuthentication yes PasswordAuthentication no # 若使用密钥登录需保持此配置 PermitRootLogin prohibit-password # 或直接设置为no,禁止root远程登录sudo systemctl restart sshd
- 确认Jenkins SSH配置中使用的是
验证Jenkins侧的密钥配置
- 确认Jenkins中配置的私钥与AL2023实例的公钥完全匹配,无格式错误(比如多余空格、换行)。
- 检查Jenkins服务器上私钥文件的权限:Jenkins运行用户的
~/.ssh目录权限为700,私钥文件权限为600,避免因权限过宽被SSH拒绝。
查看实例SSH日志定位具体原因
在AL2023实例上执行sudo tail -f /var/log/secure,然后触发Jenkins的SSH连接尝试,日志中会输出详细的认证失败原因(比如密钥不匹配、权限不足、配置拒绝等),根据日志信息针对性修复。排查SELinux限制
Amazon Linux 2023默认开启SELinux强制模式,可能影响SSH密钥认证:- 临时关闭SELinux测试:
sudo setenforce 0,若此时Jenkins能正常连接,说明是SELinux规则限制。 - 永久调整SELinux规则:执行
sudo restorecon -Rv ~/.ssh修复SSH目录的SELinux上下文,再开启SELinux:sudo setenforce 1
- 临时关闭SELinux测试:
内容的提问来源于stack exchange,提问作者Vijayakumar Subramani
相关产品推荐
相关产品推荐

