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

无法通过SSH登录AWS中的Jenkins实例,寻求可行解决方案

解决Jenkins实例SSH登录密钥短语问题的方案

一、替代SSH登录方式

  • 跳板机代理转发登录:不用单独输入密钥短语,直接在本地通过跳板机做代理。执行命令:
    ssh -o ProxyCommand="ssh -W %h:%p 跳板机用户名@跳板机IP" Jenkins实例用户名@Jenkins实例IP
    这个命令会复用你登录跳板机的会话,直接连接Jenkins实例。另外可以去跳板机的~/.ssh/目录里找一找,看有没有遗留的Jenkins实例密钥文件(比如.pem或.id_rsa后缀),如果有,直接在跳板机上执行:
    ssh -i /path/to/jenkins-key-file Jenkins实例用户名@Jenkins实例IP

  • AWS SSM直接登录:如果Jenkins实例装了SSM Agent(AWS官方AMI基本都自带),用AWS CLI就能直接登录,完全绕开SSH密钥:

    1. 本地装好AWS CLI,配置好有权限的AWS账号(需要ssm:StartSession权限)
    2. 执行:aws ssm start-session --target <Jenkins实例的EC2 ID>
      这种方式连跳板机都不用,直接从本地进入实例终端。

二、关于绕过密钥短语

密钥短语是加密SSH私钥用的,没有合法的绕过方法。但可以试试找未加密的私钥副本:

  • 检查跳板机的~/.ssh/config文件,看有没有针对Jenkins实例的配置,里面可能指定了无密码短语的密钥路径。
  • 跑history命令看跳板机的历史操作记录,有没有之前登录Jenkins实例的完整命令,可能带了密钥文件路径。
  • 去AWS控制台的Secrets Manager或Parameter Store里搜一搜,说不定离职的DevOps把密钥存在那里了。

三、白名单弹性IP的方案

如果你的本地机器有固定公网IP,可以修改Jenkins实例的安全组,直接允许你的IP访问22端口:

  1. 登录AWS控制台,找到Jenkins实例对应的安全组
  2. 添加入站规则:协议选SSH(22),来源填你的本地公网IP/32
  3. 保存后直接从本地尝试SSH登录(但还是需要正确的密钥及短语,除非用上面的SSM方式)
    这个方法只是跳过跳板机,解决不了密钥短语的问题,但能简化登录流程。

四、应急重置方案

如果你有AWS管理员权限,能接受Jenkins停机,可以重置实例的登录密钥:

  1. 先停止Jenkins实例,提前备份好Jenkins的工作区、配置文件(比如/var/lib/jenkins/目录)
  2. 分离实例的根卷,挂载到另一台正常运行的EC2实例上
  3. 编辑挂载卷里的/home/用户名/.ssh/authorized_keys,替换成你自己的公钥
  4. 把根卷重新挂载回Jenkins实例,启动后用你的密钥登录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 14:45:24