npm install 报错 Permission denied (publickey) ssh://

文章讲述了在执行npminstall过程中遇到的GitSSH权限问题,包括Permissiondenied错误,以及如何通过替换URL为HTTP,设置git和npm的代理,清理npm缓存,以及使用nvm管理Node版本来解决这些问题。同时提到了npmrundev时可能遇到的ERR_OSSL_EVP_UNSUPPORTED错误及其解决方案。
摘要由CSDN通过智能技术生成

问题一:

主要是在执行 npm install 过程中遇到:

       /usr/bin/git ls-remote ssh://git@github.com/nhn/raphael.git

        Permission denied (publickey)

由于通过 ssh:// 访问异常,但是通过:

        /usr/bin/git ls-remote http://git@github.com/nhn/raphael.git 执行没问题

也就是说通过 git config 将 ssh:// 替换成 http:// 就能解决:

执行指令:

        sudo git config --global url."http://".insteadOf ssh://

问题二:

Error: EACCES: permission denied, access '/data/vue-element-admin'

这个是依赖超级权限问题,需要通过:

        sudo npm install 解决

在执行 sudo npm install 之前,需要检查 sudo git config --global 的环境问题:

也即是说,你需要通过执行:

        sudo git config --global --list

最少看到以下三个配置,才安装成功:

        url.https://.insteadof=git://

        url.http://.insteadof=ssh://

        http.sslverify=false

如何设置上述三个配置:

sudo git config --global url."https://".insteadOf git://

sudo git config --global url."http://".insteadOf ssh://

sudo git config --global http.sslverify false

如果是在sudo超级权限下 sudo npm install,上面3个指令也必须用 sudo 前缀执行

问题三:

npm ERR! /usr/bin/git ls-remote -h -t git://github.com/adobe-webplatform/eve.git
npm ERR! 
npm ERR! fatal: unable to connect to github.com:
npm ERR! github.com[0: 20.205.243.166]: errno=Connection refused


在超级和非超级权限下,发现用 http:// 替换 git:// 出现上述问题,也即是说必须要通过 https://去替代 git:// 才可以正常访问:

sudo git config --global url."https://".insteadOf git://

这样在使用 https:// 不行的情况下,会尝试使用 http:// 去再次尝试

所以最终配置如下,执行 sudo git config --global --list

http.sslverify=false

url.https://.insteadof=git://
url.http://.insteadof=ssh://

问题四:

npm ERR! network timeout at: https://registry.npmjs.org/screenfull
 

小技巧:

因为执行 sudo npm install 整个过程比较久,可以单独拿出报错的执行语句执行,如:

sudo /usr/bin/git ls-remote -h -t git://github.com/adobe-webplatform/eve.git

去检查上述替换是否生效

git 指令 访问 github.com 非常不稳定,也会容易导致上述拒绝访问,所以需要合理上网,让其网络访问稳定,需要指定代理:

http
sudo git config --global http.proxy http://127.0.0.1:7890(自己代理的端口号)
sudo git config --global https.proxy https://127.0.0.1:7890(自己代理的端口号)
ssh
sudo git config --global http.proxy 'socks5://127.0.0.1:1080'
sudo git config --global https.proxy 'socks5://127.0.0.1:1080'

为git设置了代理,在命令行执行 sudo /usr/bin/gi ls-remote -h -t git://github.com/adobe-webxxx 能够成功连到代理,但是在 sudo npm install 里面执行同一个指令,却无法正常连接git配置的代理,所以还需要指定 npm 的代理:

sudo npm config set proxy=http://server:port

sudo npm config set https-proxy http://server:port

设置了上述还不生效的话,就需要考虑下述的指令:

如果上述反复设置 sudo git config --global url."https://".insteadOf git://,在执行 npm install 中不生效,而在外部终端执行却生效,就需要执行:

sudo npm cache clean --force

sudo npm cache clear --force

发现清理了 npm cache 后,上述 git config 相关设置,就可以在 npm install 执行中生效了

提供大家遇到这个问题的一些讨论:

https://github.com/PanJiaChen/vue-element-admin/issues/3859

如果尝试上述所有方法都不行,那就安装个 nvm 去管理多个 node 版本,通过 nvm ls-remote

查找最新的node版本去安装, 例如我写这个文章的时候,最新版本是:20.2.0,执行指令:

nvm install 20.2.0

后面再去执行 npm install --registry=https://registry.npmmirror.com 就没遇到上述所有的问题

当然会遇到 package.json 和 node_modules 需要权限的问题,这个可以通过 chown -v 修改文件夹权限问题,由于 npm install 过程中,需要访问 GitHub,所以需要通过 git config --global 设置代理,如:

git config --global http.https://github.com.proxy  http://your-ip:your-port

git config --global https.https://github.com.proxy https://your-ip:your-port

如果 npm run dev 遇到 ERR_OSSL_EVP_UNSUPPORTED 报错,又需要设置环境变量:

export NODE_OPTIONS=--openssl-legacy-provider

 重新执行 npm run dev 就没有其他异常!!真心累弄这个 npm 的环境;

根据引用\[1\]中的描述,出现"Permission denied (publickey)"错误可能是由于公司的gitlab的SSH key没有正确配置所致。解决这个问题的具体步骤如下: 1. 删除之前生成的私钥和公钥。 2. 在git bash中执行命令"ssh-keygen -t rsa -C "此处为我加入公司的gitlab网址"",生成新的SSH key。默认路径不要修改,默认存放在C:/用户目录/.ssh下。 3. 将生成的公钥(id_rsa.pub文件的内容)添加到公司的gitlab网站中。 4. 配置好后,使用SSH的URL进行clone操作,以后的pull和push操作都不需要输入密码。 根据引用\[3\]中的描述,当执行npm install安装时,可能会出现"Permission denied (publickey)"错误。这个错误可能是由于没有正确的访问权限或仓库不存在所致。 综上所述,"Permission denied (publickey)"错误通常是由于SSH key配置不正确或者没有正确的访问权限所导致的。解决这个问题的方法是重新生成SSH key并将公钥添加到相应的git服务器中,确保具有正确的访问权限。 #### 引用[.reference_title] - *1* [Git问题:windows下git@gitlab.com: Permission denied (publickey)问题](https://blog.csdn.net/m0_37482190/article/details/103208287)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [command git --no-replace-objects ls-remote ssh://git@github.com/nhn/raphael.git npm ERR](https://blog.csdn.net/hadues/article/details/128534945)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值