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

作为GitHub协作者执行flutter pub get时遇Permission Denied(publickey)错误

问题原因分析与解决建议:Flutter pub get 出现 Git 公钥权限拒绝错误

问题原因

  • 公钥未正确生效:虽已将公钥添加至GitHub账户,但可能存在公钥与当前机器不匹配、GitHub未正确识别公钥的情况。
  • 依赖仓库权限不足:项目的pubspec.yaml中可能引用了其他私有GitHub仓库,你仅拥有主项目的协作者权限,无这些依赖仓库的访问权限。
  • Git SSH配置异常:若本地存在多组SSH密钥,Git可能未使用对应GitHub账户的密钥,导致权限验证失败。
  • GitHub权限未同步:刚被添加为协作者时,GitHub权限缓存可能存在延迟,尚未完成权限同步。

解决建议

1. 验证SSH公钥有效性

执行以下命令测试与GitHub的SSH连接:

ssh -T git@github.com

若返回Hi [你的GitHub用户名]! You've successfully authenticated, but GitHub does not provide shell access.,说明公钥正常;若仍报错,需重新生成并添加正确的公钥到GitHub账户。

2. 检查私有依赖仓库权限

打开项目的pubspec.yaml,查看所有git类型的依赖,确认每个私有仓库你都已被添加为协作者。若存在未授权的依赖仓库,联系对应仓库管理员添加权限。

3. 配置Git SSH密钥指定(多密钥场景)

若本地有多个SSH密钥,需配置~/.ssh/config(Windows系统路径为C:\Users\[你的用户名]\.ssh\config),指定GitHub使用对应密钥:

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/你的私钥文件名(例如id_rsa)

配置完成后,再次执行ssh -T git@github.com验证连接。

4. 等待权限同步或刷新会话

刚添加协作者权限后,GitHub可能需要1-5分钟完成权限同步。若等待后仍报错,可退出GitHub账户重新登录,再执行flutter pub get。

5. 临时切换为HTTPS地址

若SSH方式始终无法解决,可将仓库远程地址改为HTTPS,或修改pubspec.yaml中Git依赖的地址为HTTPS格式。执行flutter pub get时,输入GitHub用户名和个人访问令牌(推荐)或密码完成验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 12:35:16