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

Heroku构建报错Host key verification failed无法读取远程仓库求解

根因说明

该报错为Heroku构建阶段执行npm install时,尝试通过SSH协议拉取Github私有仓库依赖时身份校验失败导致,常见触发场景:

  1. 本次提交的package.json中新增/修改了私有Github仓库的依赖,使用了SSH格式的依赖地址
  2. 此前配置的、允许Heroku访问私有仓库的SSH部署密钥被删除/过期
  3. Github官方SSH主机密钥更新,Heroku侧缓存的旧主机密钥校验不通过
解决步骤
  • 优先推荐使用HTTPS+PAT方式拉取私有依赖,无需配置SSH密钥,适配无Heroku CLI的操作场景:
    1. 前往Github个人账户设置的「Developer settings」-「Personal access tokens」页面,生成一个仅授予私有仓库读取权限的PAT(个人访问令牌)
    2. 将package.json中所有SSH格式的私有依赖地址,替换为PAT授权的HTTPS格式,示例:
      原SSH格式:"your-private-pkg": "git+ssh://git@github.com/your-org/your-private-pkg.git#main"
      替换后HTTPS格式:"your-private-pkg": "git+https://<你的PAT>@github.com/your-org/your-private-pkg.git#main"
    3. 提交修改后的package.json触发Heroku构建即可。
  • 若需保留SSH方式拉取依赖,按以下步骤操作:
    1. 本地生成一对专属的SSH密钥对,不要使用个人日常使用的本地密钥
    2. 将公钥添加到对应私有Github仓库的「Deploy keys」(部署密钥)列表,仅勾选只读权限即可
    3. 打开Heroku项目后台的「Settings」-「Config Vars」板块,新增名为GITHUB_DEPLOY_KEY的环境变量,值为生成的私钥内容
    4. 在项目根目录新增.profile文件,写入以下内容,用于构建前自动配置SSH环境:
    mkdir -p ~/.ssh
    echo "$GITHUB_DEPLOY_KEY" > ~/.ssh/id_rsa
    chmod 600 ~/.ssh/id_rsa
    ssh-keyscan github.com >> ~/.ssh/known_hosts
    
    1. 提交所有变更触发Heroku构建即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:54:03