我將我的 ssh 密鑰放在 github 中,因此git clone適用于某個私有存盤庫;go mod tidy嘗試訪問同一存盤庫時失敗,錯誤訊息如下所示。我可以使用幫助解決此問題。go mod tidy來自(編輯私有存盤庫的名稱,但逐字逐句)的錯誤訊息是:
github.com/[private repository path]: cannot find module providing package github.com/[private repository path]: module github.com/[private repository path]: git ls-remote -q origin in /mnt/dependencies/gopath/pkg/mod/cache/vcs/a1f499df6a9855aecdc77bda31504008583a3268fdd403799aade71bb47df7d2: exit status 128:
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository
Please make sure you have the correct access rights
and the repository exists.
成功的 git clone 命令(再次編輯私有存盤庫)是:
git clone [email protected]:[private repository path].git
我的.gitconfig檔案是(我的姓名和電子郵件已編輯):
[user]
name = [my name]
email = [my email]
[url "github.com:"]
insteadOf = https://github.com/
[core]
excludesfile = /workdir/.gitignore
其他可能會產生影響的事情:
- 我在 Docker 容器中以 root 身份運行命令。
- 我嘗試使用與 Docker 容器上
go mod tidy相同的密鑰在我的主機上運行~/.ssh,??我得到了登錄提示,github 不再支持(他們需要 SSH 密鑰或個人訪問令牌)。 - 我的 gitconfig 中的電子郵件與我放在 github.com 上的公鑰中給出的電子郵件相匹配。
第二個相關問題:我可以運行的事實是否git clone排除了錯誤地將密鑰上傳到 github,并且忘記為 github 上的密鑰啟用 SSO?
這是一個類似的問題,但它涉及個人訪問令牌而不是 ssh 密鑰:`go mod tidy` 無法下載私有 GitHub 存盤庫
uj5u.com熱心網友回復:
我在 Docker 容器中以 root 身份運行命令。
確保它確實訪問了/root/.ssh與您在常規帳戶中使用的相同的密鑰(in )。
并檢查 Git 全域配置設定是否真的包含您的insteadOf指令。
~/.ssh嘗試使用與 Docker 容器上相同的密鑰在我的主機上運行 go mod tidy,但我得到了登錄提示。
這意味著公鑰未正確注冊到 GitHub 用戶組態檔,或者說用戶無權訪問存盤庫。
uj5u.com熱心網友回復:
我找到了我的問題的答案,但它開啟了我在問題中省略的一個事實。
直到第二天早上,我才意識到我的 Docker 鏡像的 golang 版本比用于填充的版本更高$GOPATH(或者至少我沒有意識到這有多重要)。為了解決這個問題,我洗掉了下面的所有內容$GOPATH并重新運行go mod tidy,沒有任何問題。
VonC 答案中的清單很有用,而且更符合所述問題,所以我接受了它。但我會為遇到這篇文章的任何人添加它:
“使用的 golang 版本是否與go mod tidy填充的版本不同$GOPATH?”
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/491543.html
