npm install在Linux上的HTTP身份验证失败

时间:2018-10-21 17:03:02

标签: git npm

我正在尝试在Linux Raspbian 8.0上运行npm install git+https://bitbucket.org/User/Repository。但是,出现此错误:

npm ERR! Error while executing:
npm ERR! /usr/bin/git ls-remote -h -t https://bitbucket.org/User/Repository.git
npm ERR!
npm ERR! remote: Invalid username or password
npm ERR! fatal: Authentication failed for 'https://bitbucket.org/User/Repository.git/'
npm ERR!
npm ERR! exited with error code: 128

我的Bitbucket用户名和应用密码应该在全局和目录git配置中均可用:

git config user.name "Username"
git config user.password "Password"
git config --global user.name "Username"
git config --global user.password "Password"

因此,npm应该可以使用正确的用户名和密码,但似乎并没有使用它们。

此外,为了避免疑问,我已经通过直接与git一起使用来验证用户名和密码是正确的。

在解决此问题方面的任何帮助将不胜感激!

修改 感谢Matthieu Moy在评论中指出我使用的配置值实际上对Git没有任何特殊含义。

According to documentation,用户名和密码组合可以存储在~/.git-credentials中。我已经完成了,格式为https://Username:Password@bitbucket.org。但是,与上述相同的错误仍然存​​在。我已验证用户名和应用密码正确无误。 Git似乎根本没有使用它们。

3 个答案:

答案 0 :(得分:1)

似乎明确指定了.git-credentialsgit的路径可以解决此问题。我是通过the following command这样做的:

git config --global credential.helper 'store --file=/path/to/.git-credentials'

答案 1 :(得分:0)

我认为bitbucket不想让您从不受信任的来源进行连接。为此,您将需要一个受信任的密钥。该问题已解决:How to resolve authentication error in npm install?

-这是该人告诉您尝试的内容-

如果可以的话,您应该:

答案 2 :(得分:0)

@libzz,我无法评论已接受的答案(我的声誉不高),但要回答您的问题:如果您不想存储凭据,可以使用'cache '作为certificate.helper设置。

git config --global credential.helper cache

如果您向git提供用户名/密码,它将把它们缓存15分钟。

因此,在npm install之前,您可以在仓库上执行类似git pull的操作,以发出git提示并临时缓存您的凭据。在npm install上,git可以使用您的缓存凭据从同一服务器克隆。

这消除了使用纯文本存储凭据的文件的需求。