安装Jenkins后无法通过SSH连接AWS EC2实例问题求助
问题原因排查及解决方案
常见故障原因
- 安全组配置误改:调整Jenkins端口放行规则时,大概率误删了SSH默认22端口的入站规则,或者错误限制了22端口的允许访问源IP。因为Jenkins 9090端口可以正常访问,说明实例网络本身是连通的,优先排查安全组规则。
- 实例内置防火墙拦截:安装Jenkins过程中如果开启了系统内置的firewalld/ufw防火墙,且未同步放行22端口,会导致内部网络层拦截SSH请求。
- SSH服务配置异常:安装Jenkins时如果涉及系统权限调整、sshd配置文件改动,可能导致sshd服务配置错误无法启动,或者SSH监听端口、允许登录的用户范围被错误修改。
- 系统磁盘占满:Jenkins运行产生的构建日志、缓存文件占满系统根分区后,SSH服务无法写入临时授权文件,会直接拒绝连接请求。
修复操作步骤
你可以优先通过AWS EC2控制台自带的EC2 Instance Connect或者会话管理器(Session Manager) 登录实例,这两个方式不需要走22端口的SSH连接:
- 验证SSH服务状态:执行
systemctl status sshd查看服务是否正常运行,如果未启动执行systemctl start sshd启动,同时执行sshd -t验证SSH配置文件合法性,有错误会直接输出错误行位置。 - 检查内置防火墙规则:如果是Amazon Linux 2/RedHat系系统,执行
firewall-cmd --list-all确认是否放行了22端口,未放通则执行firewall-cmd --add-port=22/tcp --permanent && firewall-cmd --reload添加永久规则;如果是Ubuntu/Debian系系统,执行ufw status,未放通则执行ufw allow 22/tcp。 - 检查磁盘占用:执行
df -h查看根分区使用率,如果占满100%,清理Jenkins旧构建日志、无用缓存释放空间即可。 - 回查安全组规则:到EC2控制台确认实例绑定的安全组入站规则,存在允许你当前公网IP访问22端口的TCP规则。
需要修改的配置文件说明
仅两种场景需要手动修改配置:
- SSH服务配置错误时,修改
/etc/ssh/sshd_config文件,修改完成必须先执行sshd -t验证无配置错误,再执行systemctl restart sshd重启服务生效。 - 内置防火墙默认未放行22端口时,按照上述命令添加永久放行规则即可,不需要手动修改配置文件。
内容的提问来源于stack exchange,提问作者Salman Haider
相关产品推荐
相关产品推荐

