簡體   English   中英

npm 使用 git+ssh 安裝不使用現有的 ssh 用戶密鑰

[英]npm install with git+ssh doesn't use existing ssh key for user

我想在我的項目中引用私有 GitHub 存儲庫。 我正在嘗試以下命令:

npm i git+ssh://git@github.com/<myusername>/<myprivaterepo>.git

但是,似乎沒有注意到我的(Windows 11)系統上已經配置了 SSH 密鑰。 我可以愉快地克隆 repo,但執行上述命令會提示我登錄 GitHub:

GitHub 登錄

根據我在網上的搜索,這應該無需額外的身份驗證即可工作。 例如, 本文解釋了如何設置 - 我可以跳過第 2 步和第 3 步,因為我的 SSH 密鑰已經有效(使用ssh -T git@github.com驗證,但仍會收到提示,並且 IFE6AD1C50DA4B 仍然不),想要在技術上不需要的情況下為我的 GitHub 帳戶添加不必要的額外訪問權限。

有誰知道我為什么會收到這個提示?

我自己發現了這一點 - 這顯然是各種情況下的常見問題,但在我搜索 npm 相關命令時,我沒有找到任何地方引用 npm 發生的這種情況,因此是我的問題。

多虧了我偶然發現的這條評論,我發現有一個用於控制處理憑據的設置。 您可以使用git config credential.helper檢查其值。 我很幸運地不知道這存在,因為我通常從命令行使用 SSH 密鑰對。

我通過在我的系統上完全關閉 git 的憑證助手解決了我的問題,其中:

git config --system --unset credential.helper

請注意,這需要管理權限,因為相關的配置文件位於Program Files目錄中( C:\Program Files\Git\etc\gitconfig )。

The reason is the git ssh private key is not stored on the jenkins host,you need use the private key from jenkins credential,with version 2.30+ git,git support use GIT_SSH_COMMAND to set private key,the code in jenkinsfile as bellow

 stage('install') {
                withCredentials([sshUserPrivateKey(credentialsId: "keyId", keyFileVariable: 'key')]) {
                // from git 2.30+,git support use GIT_SSH_COMMAND to set private key 
                sh 'GIT_SSH_COMMAND="ssh -i $key" npm install'
                }
     }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM