如何解决package.json引入git依赖执行yarn install报access denied(publickey)错误
问题根源
报错原因是你当前SSH配置中,只有访问别名bb时才会调用工作用的id_rsa_work密钥,直接访问bitbucket.org域名时SSH默认读取id_rsa私钥,和你Bitbucket账号绑定的公钥不匹配,所以鉴权失败。以下是两种不用切换HTTPS的解决方法:
方案1:修改package.json依赖地址(适合个人项目)
直接把依赖中的SSH域名替换为你配置的Host别名bb即可,修改后配置为:
"felix.ui": "git+ssh://git@bb/felix/felix.ui.git#1.2.3"
方案2:调整SSH config配置(适合团队协作场景,无需修改业务代码)
不用修改项目内的package.json,直接调整.ssh/config中Bitbucket相关的规则,将Host匹配规则改为直接匹配bitbucket.org域名:
# Github (default) Host gh HostName github.com User git IdentityFile ~/.ssh/id_rsa # Bitbucket (work) Host bitbucket.org HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_work
配置修改完成后,先执行命令测试SSH连通性:ssh -T git@bitbucket.org
返回你的Bitbucket账号用户名即代表配置生效,之后再执行yarn install即可正常拉取依赖。该方案不会修改项目内的依赖地址,不会影响其他团队成员的依赖拉取。
内容的提问来源于stack exchange,提问作者nihal
相关产品推荐
相关产品推荐

