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

如何在Expo EAS中配置SSH Agent拉取私有GitHub依赖?

配置EAS Build拉取私有GitHub依赖的SSH代理方案

步骤1:生成专用SSH密钥对

  • 生成仅用于EAS Build的SSH密钥(请勿使用个人密钥):
    ssh-keygen -t ed25519 -f ~/.ssh/eas-build-key -N ""
    
  • 将生成的公钥(eas-build-key.pub)添加到私有GitHub仓库的Deploy keys中,若需更新依赖可勾选"Allow write access"。

步骤2:在Expo Dashboard存储私钥

  • 打开Expo Dashboard进入你的项目,导航到Settings > Secrets。
  • 添加新Secret,命名为EAS_BUILD_SSH_PRIVATE_KEY,值填入刚才生成的私钥文件(eas-build-key)里的完整内容。

步骤3:配置EAS预构建脚本

在项目根目录的eas.json中,为对应构建环境添加pre-build脚本,实现依赖安装前启动ssh-agent并加载私钥:

{
  "build": {
    "production": {
      "preBuildCommand": "eval $(ssh-agent -s) && echo \"$EAS_BUILD_SSH_PRIVATE_KEY\" | tr -d '\\r' | ssh-add - > /dev/null && mkdir -p ~/.ssh && echo \"StrictHostKeyChecking no\" > ~/.ssh/config"
    },
    "development": {
      "preBuildCommand": "eval $(ssh-agent -s) && echo \"$EAS_BUILD_SSH_PRIVATE_KEY\" | tr -d '\\r' | ssh-add - > /dev/null && mkdir -p ~/.ssh && echo \"StrictHostKeyChecking no\" > ~/.ssh/config"
    }
  }
}
  • 脚本说明:
    • eval $(ssh-agent -s):启动ssh-agent进程
    • echo "$EAS_BUILD_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null:将私钥加载到ssh-agent,tr -d '\r'避免Windows换行符引发的密钥识别问题
    • mkdir -p ~/.ssh && echo "StrictHostKeyChecking no" > ~/.ssh/config:禁用主机密钥检查,避免首次连接GitHub时的交互阻塞

步骤4:确认依赖地址格式

确保package.json中的私有依赖使用SSH格式:

{
  "dependencies": {
    "your-private-module": "git+ssh://git@github.com/your-username/your-private-repo.git#v1.0.0"
  }
}

额外注意事项

  • 私钥全程通过Expo Secrets管理,绝对不要提交到代码仓库
  • 若有多个私有仓库依赖,同一个公钥可添加到所有目标仓库的Deploy keys中
  • 构建时可查看EAS日志,确认ssh-agent启动和密钥加载流程无报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 07:24:52