[英]Intellij IDEA fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists
[英]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.git
(git@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 config
或code config
或nano 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 上分享了一步一步的步驟
嘗試:
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 答案):
而且應該沒問題。
也許,就像在我愚蠢的情況下一樣,您可以通過直接鍵入以某種方式創建 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
方法不對
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.