簡體   English   中英

Git:致命:無法從遠程存儲庫讀取。 請確保您擁有正確的訪問權限並且存儲庫存在

[英]Git : fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists

我收到此錯誤 -

D:\Projects\wamp\www\REPO [master]> git pull origin master
Warning: Permanently added 'github.com,192.30.252.128' (RSA) to the list of known hosts.
ERROR: Repository not found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

git remote -v的輸出

D:\Projects\wamp\www\REPO [master]> git remote -v
origin  git@github.com:username/repo.git (fetch)
origin  git@github.com:username/repo.git (push)

ssh -Tv git@github.com命令的最終信息 -

Hi [My Username]! You've successfully authenticated, but GitHub does not provide shell access.

我該如何解決?

通過遠程“來源”的 http url 更改 ssh url,使用:

> git remote set-url origin https://github.com/<user_name>/<repo_name>.git

它會在 git push 上詢問你的 GitHub 密碼。

在討論中問:

ssh -T git@github.com輸出的用戶名( in Hi [My Username]! )是否與用於存儲庫的 ssh url 的git@github.com:username/repo.gitgit@github.com:username/repo.git )相同?

抱歉它沒有顯示相同的名稱

這意味着憑據以某種方式發生了變化。

一種解決方案是至少在正確的 GitHub 帳戶的 SSH 密鑰部分復制%HOME%\\.ssh\\id_rsa.pub

OP補充說:

我正在研究私人回購。 所以在 git@github.com:username/repo.git 中,

我回答:

如果您能夠克隆/推送到用戶名不是您自己的 GitHub 帳戶的存儲庫,那一定是因為您已將之前的公共 ssh 密鑰添加為存儲庫所有者對該存儲庫的貢獻者。

接下來是要求同一個 repo 所有者將您當前的公共 ssh 密鑰%HOME%\\.ssh\\id_rsa.pub到 repo 貢獻者列表中。
因此,請與所有者確認您(即您的公共 ssh 密鑰)是否被聲明為貢獻者。

當您使用兩個 ssh 密鑰訪問兩個不同的 GitHub 帳戶時,通常會發生這種情況。

按照以下步驟解決這個問題,它看起來太長了,但相信我不會超過 5 分鍾:

步驟 1:創建兩個 ssh 密鑰對:

ssh-keygen -t rsa -C "your_email@youremail.com"

第 2 步:它將在這里創建兩個 ssh 密鑰:

~/.ssh/id_rsa_account1
~/.ssh/id_rsa_account2

第 3 步:現在我們需要添加這些鍵:

ssh-add ~/.ssh/id_rsa_account2
ssh-add ~/.ssh/id_rsa_account1
  • 您可以使用以下命令查看添加的密鑰列表: ssh-add -l
  • 您可以通過以下命令刪除舊的緩存密鑰: ssh-add -D

步驟 4:修改 ssh 配置

cd ~/.ssh/
touch config

subl -a configcode confignano config

第 5 步:將此添加到配置文件:

#Github account1
Host github.com-account1
    HostName github.com
    User account1
    IdentityFile ~/.ssh/id_rsa_account1

#Github account2
Host github.com-account2
    HostName github.com
    User account2
    IdentityFile ~/.ssh/id_rsa_account2

第 6 步:更新您的.git/config文件:

步驟 6.1:導航到 account1 的項目並更新主機:

[remote "origin"]
        url = git@github.com-account1:account1/gfs.git

如果您在他們的 git 存儲庫中受到其他用戶的邀請。 然后你需要像這樣更新主機:

[remote "origin"]
            url = git@github.com-account1:invitedByUserName/gfs.git

步驟 6.2:導航到 account2 的項目並更新主機:

[remote "origin"]
        url = git@github.com-account2:account2/gfs.git

第 7 步:如果需要,單獨更新每個存儲庫的用戶名和電子郵件,這不是修改步驟:

導航到 account1 項目並運行這些:

git config user.name "account1"
git config user.email "account1@domain.com" 

導航到 account2 項目並運行這些:

git config user.name "account2"
git config user.email "acccount2@doamin.com" 

有時(將 pub ssh 密鑰復制到 github/bitbucket)是不夠的,尤其是對於 Bitbucket。 您可能還需要檢查您的 ssh 是否使用您期望的身份而不是搞亂git remote

檢查代理是否使用與您在 github/bitbucket 上粘貼的身份相同的身份ssh-add -l 如果缺少添加它

ssh-add ~/.ssh/id_rsa_my_git_identity

更多詳情: https : //confluence.atlassian.com/bitbucket/configure-multiple-ssh-identities-for-gitbash-mac-osx-linux-271943168.html

這個錯誤也發生在我身上,因為原始存儲庫創建者離開了公司,這意味着他們的帳戶從 github 團隊中刪除。

git remote set-url origin https://github.com/<user_name>/<repo_name>.git

然后git pull origin develop或您想要執行的任何 git 命令都應該提示您登錄並繼續正常操作。

有時這會發生在我身上,因為網絡問題。 我不完全理解問題,但切換到不同的子網或使用 VPN 解決了​​它

此錯誤可能是因為本地計算機上沒有 SSH 密鑰。 在本地檢查 SSH 密鑰:

$ cat ~/.ssh/id_rsa.pub

如果上面的命令沒有給出任何輸出,請使用下面的命令來創建 ssh 密鑰(Linux/Mac):

$ ssh-keygen 

現在再次運行cat ~/.ssh/id_rsa.pub這是您的 SSH 密鑰。 將此密鑰復制並添加到 git 中的 SSH 密鑰中。 在 gitlab/bitbucket 中轉到

profile settings -> SSH Keys -> add Key

並添加密鑰

ssh-add -D  # Delete all identities.
ssh-add ~/.ssh/your_key

編輯 1
由於我獲得了如此多的投票,我發現這種方法存在一些問題,那就是它會刪除您的所有身份,因此當您嘗試從其他存儲庫讀取時可能會遇到相同的問題,並且您需要為每個人再次執行此步驟項目...但您的項目也可能不是這種情況

我也遇到了同樣的錯誤。 在我的情況下,從 Windows 7 升級到 8 搞砸了我的設置。 有用的是使用 PuTTYGen 重新生成私有和公共 SSH 密鑰,並將 tortoisegit 中的 SSH 工具從 SSH 更改為 Plink。

我也在http://techblog.saurabhkumar.com/2015/09/using-tortoisegit-on-windows-with.html 上分享了一步一步的步驟

我遇到了這個問題並嘗試了很多東西,但仍然無法正常工作。 最終我決定生成另一個SSH KEY並繁榮 - 它起作用了。 按照github 的這篇文章指導您如何生成SSH KEY.

最后不要忘記將它添加到您的 github 設置中。 單擊此處獲取有關如何將SSH KEY添加到 github 帳戶的指南。

嘗試:

git config --global credential.helper cache

此命令可防止 git 詢問用戶名和密碼,但不是永遠,但默認限制為 15 分鍾。

git config --global credential.helper 'cache --timeout=3600'

這會將默認限制移至 1 小時。

在我的情況下,更新 GIT 有幫助 - 我有 2.23 版,安裝 2.26.2.windows.1 版問題​​消失了。

因此,如果您確定您的 SSH 密鑰有效,那么(請參閱 @VonC 答案):

  1. 更新 GIT
  2. 更新作曲家
  3. 運行 composer clearcache

而且應該沒問題。

也許,就像在我愚蠢的情況下一樣,您可以通過直接鍵入以某種方式創建 ssh 密鑰

ssh-keygen

因此它是使用本地系統用戶憑據創建的,因此它們不匹配,請使用像這樣的完整命令並重新創建

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

此問題可能與 Github 或任何其他 git 服務器上缺少 SSH 密鑰有關。

就我而言,我已將代碼復制到另一台計算機並嘗試git pull 它失敗了。

所以我必須在那台機器上生成一個新的 SSH 密鑰,並使用額外的 SSH 密鑰更新 git 服務器上的配置文件。

奇怪的是,我在 MacBook Pro 上的 20 個存儲庫中的一個存儲庫中發生了這種情況。

解決方案是通過自制軟件升級git,完成后一切都奇怪地工作:

brew install git

希望這可以幫助某人!

對我來說,這里的解決方案都沒有解決它。 沮喪,我重新啟動了我的 Macbook 的 iTerm 終端,瞧! 我的 github 授權又開始工作了。

很奇怪,但也許 iTerm 有自己處理 SSH 授權的方式,或者我的終端會話未以某種方式獲得授權。

沒有必要應用上述解決方案,我只是改變了我的互聯網,它在我的家庭互聯網上運行良好,但在 3 到 4 小時后,我的朋友建議我連接不同的互聯網,然后我做了數據包並將我的筆記本電腦連接到它,現在它工作正常。

我有同樣的問題。 我嘗試了上面提到的幾種解決方案,但對我不起作用。 我什至重新啟動了我的機器並重新連接了我的 WLAN。 但一切都是徒勞的。 然后在遠程 repo 上,我手動對 repo 的 readme 文件做了一個小改動。 為了在我的機器中我的 repo 的本地副本上提取該更改,我做了通常的git pull ,然后是git push origin 這實際上奏效了。

對我來說,我收到這個錯誤是因為我的 ssh 代理沒有以某種方式運行。 這樣做有效:

eval `ssh-agent -s`
ssh-add path_to_your_key

ssh 不是正確的方式

https是正確的方式

方法不對

git remote set-url origin git@bitbucket.org:erhandemirciinstagram/..

正確的方法

git remote set-url origin https://erhandemirciinstagram@bitbucket.org/..

暫無
暫無

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

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