【问题标题】:Git auth failing when running npm install as sudo以 sudo 运行 npm install 时 Git 身份验证失败
【发布时间】:2016-01-29 03:13:31
【问题描述】:

我正在尝试安装一个从我们的私人仓库中提取的 npm 包。当我以自己的身份运行 npm install 时,我得到 Please try running this command again as root/Administrator. 当我以 sudo 身份运行它时,我得到 ​​p>

npm ERR! Error: Command failed: 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.

我通常不使用 sudo 来进行 npm 安装。我认为问题是当我以 sudo 运行时,它正在 /var/root/.ssh 中查找密钥。我没有 root 用户凭据,否则我会以 root 身份创建一个新密钥。还有其他解决方法吗?

编辑:尝试了以下建议,但没有奏效。但是,有问题的 repo 由包根目录下的依赖项引用。 `./node_modules//package.json。如果我将 git url 更改为使用 http,它可以工作,但这样做不是一个好主意,因为当我将包检回 repo 时,我必须更改它。

【问题讨论】:

    标签: node.js git npm


    【解决方案1】:

    试试这个: sudo /bin/bash 然后,运行你的 npm 命令

    【讨论】:

    • 这种情况下的错误是什么?如果您来自您的用户,比如说mshore,运行sudo /bin/bash,它应该打开一个具有root 访问权限但具有mshore's 环境的非登录终端。当你从你的 repo 目录中执行 sudo /bin/bash 然后执行 git pull 时会发生什么?
    • 好吧,这基本上意味着您是root,并且您的 ssh 密钥正在从您的用户那里加载。如果在sudo /bin/bash 之后执行whoami,它应该输出root。仅供参考,一旦您进入根 bash,您就不需要再执行 sudo npm ... 了。只需npm ...
    • 问题自行解决了,我可能无意中修复了它。但是,我确实查看了 /var/root/.ssh/known_hosts 并且我的密钥在那里。
    【解决方案2】:

    我认为问题在于,当我以 sudo 运行时,它正在 /var/root/.ssh 中查找密钥。我没有 root 用户凭据

    一种解决方法是将那个 repo 的 url 更改为 http 的:然后它将查询您的登录名/密码,而不是依赖您无法以 root 身份提供的 ssh 密钥。

    cd /path/to/private/repo
    git remote set-url origin https://server/user/repo
    

    如果我将 git url 更改为使用 http,它可以工作,但这样做不是一个好主意,因为当我将包检入 repo 时,我必须更改它。

    实际上,您可以通过另一个更改一个url,而无需修改远程url的配置。
    例如(如How to use SSH instead of HTTP for Git submodules?

    git config url.https://github.com/.insteadOf ssh://git@github.com/
    # or
    git config url.https://github.com/.insteadOf git@github.com:
    

    【讨论】:

    • 好的,但这与更改配置有何不同?我正在创建一个将检入到 repo 的新文件,并且我告诉配置使用不同的 url。
    • @MusicalShore 因为您可以将其设置为全局配置(不更改存储库本身的配置: git config --global ...
    • 那也行不通。我以我和 sudo 的身份尝试过。在 npm 输出中,我可以看到它仍在使用 ssh://
    猜你喜欢
    • 1970-01-01
    • 2021-05-15
    • 2014-08-24
    • 2018-11-05
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多