通过HTTPS克隆他人仓库后执行npm install遇publickey权限拒绝问题
解决npm安装angularfire2/storage时的SSH权限拒绝问题
嘿,我刚碰到过几乎一模一样的情况,给你拆解下问题和靠谱的解决办法:
问题根源
你用HTTPS克隆项目完全没问题,但执行npm install angularfire2/storage这种GitHub用户名/仓库名简写格式的安装命令时,npm默认会调用SSH协议(也就是报错里的ssh://git@github.com/angularfire2/storage.git)去拉取代码。而你的本地没有配置能通过GitHub验证的SSH密钥,自然就触发了Permission denied (publickey)的报错。
快速临时解决方案(不用改全局配置)
直接用完整的HTTPS地址安装这个包,绕开SSH协议:
npm install https://github.com/angularfire2/storage.git
全局配置:让所有GitHub包安装默认用HTTPS
如果你不想每次都写长地址,可以在git层面做个全局配置,把所有SSH格式的GitHub请求自动转换成HTTPS:
git config --global url."https://github.com/".insteadOf ssh://git@github.com/
配置完成后,再执行npm install angularfire2/storage就不会再碰到SSH权限问题了。
可选:配置SSH密钥(长期用SSH访问GitHub)
如果你以后经常需要用SSH操作GitHub仓库,可以生成并配置专属SSH密钥:
- 生成新的SSH密钥(替换成你的GitHub注册邮箱):
执行过程中按回车接受默认存储路径和空密码即可。ssh-keygen -t ed25519 -C "your_github_email@example.com" - 启动SSH代理并添加密钥:
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 - 复制公钥内容:
然后打开GitHub账号的「Settings → SSH and GPG keys」,点击「New SSH key」,把复制的公钥内容粘贴进去保存就大功告成了。cat ~/.ssh/id_ed25519.pub
内容的提问来源于stack exchange,提问作者Angulandy2
相关产品推荐
相关产品推荐

