NPM v7 在拉取私有 git 包时如何在没有凭据的情况下访问私有 SSH 密钥?

问题描述 投票:0回答:1

在 NPM v6(在 Windows 上)中,在运行

npm install
拉取一个或多个私有 git 包之前,您需要启动 ssh 代理并向其添加 ssh 密钥。将密钥添加到 ssh 代理时,系统会提示您输入密码。这很有道理。

然而,在 NPM v7 中,这似乎不再是必需的。即使没有运行 ssh 代理,它也可以工作,并且不会提示我输入密码。我的问题是 - NPM v7(或 Git)如何在没有凭据的情况下访问私有 ssh 密钥?似乎可能存在安全漏洞。

git npm ssh
1个回答
1
投票

首先检查您的依赖 URL:如果是

git+https://
,则不会提示输入 SSH 私钥密码或 SSH 代理,而是依赖于 Git 凭证缓存。

同样,对于 SSH URL,请检查 git config -l 是否有任何替代指令

cd /path/to/repo
git config -l --show-scope --show-origin|grep -i insteadof

如果 SSH URL 自动转换为 HTTPS,则不再涉及 SSH 代理。甚至有 npm/cli/issue 2610 抱怨指定 HTTPS 时使用 SSH。

OP Mark Miretsky在评论中解释

事实上,我的 SSH URL 被自动转换为 HTTPS,而且,因为我的 HTTPS 凭据存储在 Git 凭据存储中,所以它不会提示我输入凭据

另请参阅“
选择框架后启动 Astro 时出错

”末尾的可能解决方法。

© www.soinside.com 2019 - 2024. All rights reserved.