Jenkins配置EC2凭据测试连接报无法连接服务器如何解决
Jenkins连接EC2报
can't connect to server故障排查 故障场景
在Jenkins服务器通过Manage Jenkins -> Configure System路径添加远程EC2主机连接凭据后,执行连接测试持续返回can't connect to server报错,无法建立与远程EC2主机的有效连接。
故障原因与对应解决方法
- 网络层连通性拦截
优先在Jenkins所在主机执行端口连通性测试:telnet <EC2实例连接IP> <连接端口>(SSH默认端口为22),如果端口不通按以下顺序排查:- 检查EC2实例绑定的安全组入方向规则,是否放通Jenkins服务器的出口IP(公网连接放公网IP,同VPC内网连接放对应内网IP段)对应连接端口的访问权限
- 检查EC2实例绑定的网络ACL、VPC路由表配置,跨VPC连接还要确认对等连接、云企业网等跨网配置没有拦截对应流量
- 如果Jenkins部署在容器/内网环境,确认上层网关、防火墙没有拦截到EC2地址的出方向流量
- 连接凭据配置错误
凭据不匹配会直接被远程服务端断开连接,按以下规则校验:- 密钥对认证场景:确认上传的私钥为EC2实例启动时绑定密钥对的OpenSSH格式私钥,内容无多余空格、换行、格式错误,不要使用Windows记事本编辑私钥后直接复制,避免编码异常
- 密码认证场景:确认登录用户名、密码与EC2实例内系统用户配置一致,注意官方公共AMI默认禁用root用户密码登录,需要先在实例内部开启对应权限后再使用
- 远程EC2服务配置异常
通过EC2控制台自带的会话管理/VNC连接登录实例内部排查:- 执行
systemctl status sshd确认SSH服务处于正常运行状态,服务监听端口与Jenkins侧配置的连接端口一致 - 检查
/etc/ssh/sshd_config配置,确认没有配置IP白名单、访问控制规则拦截Jenkins服务器地址,配置修改后执行systemctl restart sshd重启服务生效 - 确认EC2实例处于
运行中状态,控制台显示的系统状态检查、实例状态检查均为通过,无底层硬件、系统挂载故障
- 执行
- Jenkins侧配置/插件兼容问题
- 确认配置的EC2连接地址正确,公网/内网连接场景不要混用IP,跨地域连接时适当把连接超时时间从默认10秒调整为30秒,避免高延迟导致的连接失败
- 检查用于连接EC2的SSH插件/EC2插件版本,与当前Jenkins核心版本兼容,过旧版本插件存在已知连接兼容问题,升级到稳定版后重试
- 容器化部署的Jenkins要进入容器内部执行连通性测试,确认容器网络无出方向拦截策略
内容的提问来源于stack exchange,提问作者Prats
相关产品推荐
相关产品推荐

