赞
踩
一直从事java开发, 以前都是有专门的前端负责vue。最近前端没到位,外采的项目,自己在阿里云服务器打包,出现 npm install ssh权限报错 浪费了半天时间才解决,记录下共大家参考。
对外部公司心里一顿mmp
错误如下
npm ERR! code 128
npm ERR! An unknown git error occurred
npm ERR! command git --no-replace-objects ls-remote ssh://git@github.com/*****.git
npm ERR! Permission denied (publickey).
npm ERR! fatal: Could not read from remote repository.
为了节省时间,先上最终方案,至于到时低网络问题还是insteadOf 配置问题未确定,因为按照git官网的配置说明,按照git config --global url."https://".insteadOf git://
这样配置即可,但install还是有问题
[root] git config --global url."https://".insteadOf git://
[root] git config --global url."git://".insteadOf https://
[root] git config --global --list
http.sslverify=false
url.https://.insteadof=git://
url.git://.insteadof=https://
[root@] git config --global --list
http.sslverify=false
npm ERR! code 128
npm ERR! An unknown git error occurred
npm ERR! command git --no-replace-objects ls-remote ssh://git@github.com/adobe-webplatform/eve.git
npm ERR! Permission denied (publickey).
npm ERR! fatal: Could not read from remote repository.
npm ERR!
npm ERR! Please make sure you have the correct access rights
npm ERR! and the repository exists.
出现权限错误,网上一顿搜索
按照网上的方法,增加如下配置
git config --global url.“https://”.insteadOf git://
配置github ssh key 的方案,未尝试理论上是可以解决的。但是下载一个开源的库,还要配置key,不可接受。该方案直接pass,继续自虐解决
按照方案1,增加配置,出现新问题
npm ERR! code 128
npm ERR! An unknown git error occurred
npm ERR! command git --no-replace-objects ls-remote ssh://git@github.com/nhn/raphael.git
npm ERR! Permission denied (publickey).
npm ERR! fatal: Could not read from remote repository.
npm ERR!
npm ERR! Please make sure you have the correct access rights
npm ERR! and the repository exists.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-01-19T05_50_10_082Z-debug-0.log
初步怀疑网络问题…… 从本地访问github网络没有问题,再次install
期间经历了 清缓存、install,整个过程循环n次还是未解决raphael.git
问题 eve 的没有再出现。
怀疑git配置问题,查询git官网配置
git 官网配置项
google 的翻译是
任何以此值开头的 URL 都将被重写为以
<base>
开头。在某些站点服务于大量存储库并为它们提供多种访问方式的情况下,并且某些用户需要使用不同的访问方式,此功能允许人们指定任何等效的 URL,并让 Git 自动将 URL 重写为特定用户的最佳选择,即使对于网站上从未见过的存储库也是如此。当多个 insteadOf 字符串与给定 URL 匹配时,将使用最长的匹配项
请注意,任何协议限制都将应用于重写的 URL。如果重写更改 URL 以使用自定义协议或远程帮助程序,您可能需要调整protocol.*.allow配置以允许请求。特别是,您希望用于子模块的协议必须设置为always而不是默认的user. 见protocol.allow上面的描述。
配置的也没问题可就是没解决……
抱着试试的心态调整git配置
[root] git config --global url."git://".insteadOf https://
[root] git config --global --list
http.sslverify=false
url.https://.insteadof=git://
url.git://.insteadof=https://
再次 install
结果很满意,解决了
对于git insteadOf
的配置,欢迎大家评论到底该怎么配置。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。