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

如何通过SSH agent forwarding使用不同密钥在EC2克隆GitHub私有仓库

解决方案:配置SSH Agent多密钥转发规则

前置要求

本地机器已同时加载key1(EC2登录密钥)和key2(GitHub认证密钥)到SSH Agent:

  • 执行加载命令:ssh-add 你的key1本地路径 你的key2本地路径
  • 执行ssh-add -l验证加载结果,输出需同时包含两个密钥的指纹信息

步骤1:本地开启EC2连接的Agent转发

编辑本地SSH配置文件~/.ssh/config,添加EC2专属配置:

Host 你给EC2起的别名(比如ec2-prod)
  HostName 你的EC2公网IP/域名
  User EC2登录用户名(常见为ec2-user/ubuntu/root)
  IdentityFile 你的key1本地路径
  ForwardAgent yes

配置完成后直接用ssh 你给EC2起的别名登录实例即可,不需要额外加参数。

步骤2:EC2实例配置GitHub认证规则

登录EC2后,编辑实例上当前用户的SSH配置文件~/.ssh/config,添加如下规则:

Host github.com
  IdentityAgent $SSH_AUTH_SOCK
  IdentityFile 你的key2在本地机器上的完整绝对路径(比如/home/本地用户名/.ssh/key2)
  IdentitiesOnly yes

注意:这里填写的key2路径是你本地机器上的路径,不需要在EC2实例上真实存在对应文件,SSH会通过转发的Agent匹配对应密钥。
IdentitiesOnly yes参数会强制SSH仅使用指定的key2做GitHub认证,不会轮询Agent里的其他密钥(即不会用到key1)。

步骤3:验证配置有效性

  • 在EC2上执行测试命令:ssh -T git@github.com
  • 如果返回Hi 你的GitHub用户名! You've successfully authenticated, but GitHub does not provide shell access.则说明认证成功,使用的是key2完成校验
  • 之后直接正常执行git clone git@github.com:你的GitHub用户名/私有仓库名.git即可完成克隆操作

全程不会将key2的私钥内容传输到EC2实例,仅转发密钥的签名能力,完全符合安全要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 05:45:02