Git:致命:无法从远程存储库中读取。请确保您具有正确的访问权限并且存储库存在

时间:2015-05-06 05:33:42

标签: git github

我收到此错误 -

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.

我该如何解决?

17 个答案:

答案 0 :(得分:27)

通过您的远程“来源”的http网址更改您的ssh网址,请使用:

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

它会在git push上询问你的GitHub密码。

答案 1 :(得分:14)

我问in the discussion

  
    

ssh -T git@github.com输出的用户名(in Hi [My Username]!)与用于回购邮件的ssh网址的用户名git@github.com:username/repo.git)相同吗?

  
     

抱歉,它没有显示相同的名称

这意味着凭证已经改变了。

一种解决方案是至少复制the SSH keys section of the right GitHub account

中的%HOME%\.ssh\id_rsa.pub

OP补充道:

  
    

我正在处理私人回购。所以在git@github.com:username / repo.git,

  

我回答说:

  

如果您能够克隆/推送到其用户名不是您自己的GitHub帐户的repo,那一定是因为您已将您以前的公共ssh密钥添加为repo所有者的该回购的贡献者。

     

接下来要求同一个回购拥有者将您当前的公共密钥%HOME%\.ssh\id_rsa.pub添加到回购贡献者列表。
  因此,请与所有者核实您(意味着您的公共ssh密钥)被声明为贡献者。

答案 2 :(得分:3)

有时(将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

答案 3 :(得分:3)

通常在使用两个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 Repository中邀请您。 然后,您需要像这样更新主机:

[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" 

答案 4 :(得分:2)

由于网络问题,有时会发生这种情况。我完全不了解这个问题,但切换到不同的子网或使用VPN解决了它

答案 5 :(得分:2)

当原始存储库创建者离开公司时,这个错误也发生在我身上,这意味着他们的帐户已从github团队中删除。

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

然后 git pull origin develop或您想要执行的任何git命令都会提示您登录并继续正常运行。

答案 6 :(得分:2)

ViewPager

编辑1
由于我获得了很多票,因此我发现这种方法存在一些问题,那就是它将删除您的所有身份,因此当您尝试从其他存储库中读取数据时,您可能会遇到相同的问题,并且您需要为每个存储库再次执行此步骤项目...但是您的项目可能并非如此

答案 7 :(得分:1)

我遇到了这个问题但尝试了许多事情,但仍然无法工作。最终我决定生成另一个SSH KEY并且繁荣 - 它起作用了。请按照github的说明操作,以指导您如何生成SSH KEY.

最后不要忘记将其添加到您的github设置中。点击here获取有关如何将SSH KEY添加到您的github帐户的指南。

答案 8 :(得分:1)

此错误可能是因为本地计算机上没有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

并添加密钥

答案 9 :(得分:1)

就我而言,更新GIT会有所帮助-我的版本为2.23,安装版本2.26.2.windows.1时,问题消失了。

因此,如果您确定SSH密钥有效,那么(请参阅@VonC答案):

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

应该没问题。

答案 10 :(得分:0)

没有必要应用上述解决方案,我只是更改了互联网,可以与我的家庭互联网正常工作,但是3到4个小时后,我的朋友建议我连接到其他互联网,然后我进行了数据打包并将笔记本电脑与它,现在工作正常。

答案 11 :(得分:0)

对我来说,这里没有解决方案。沮丧的是,我重新启动了Macbook的iTerm终端,瞧!我的github授权再次开始起作用。

很奇怪,但是iTerm可能有自己的处理SSH授权的方法,或者我的终端会话未获得某种授权。

答案 12 :(得分:0)

奇怪的是,我在MacBook Pro上的20个存储库中有一个单个存储库。

解决方案是通过自制程序升级git,完成后一切都奇怪地起作用:

brew install git

希望这对某人有帮助!

答案 13 :(得分:0)

此问题可能与Github或任何其他git服务器上缺少SSH密钥有关。

就我而言,我已将代码复制到另一台计算机并尝试进行git pull。失败了。

因此,我不得不在该计算机上生成一个新的SSH密钥,并使用其他SSH密钥更新git服务器上的配置文件。

答案 14 :(得分:0)

尝试:

git config --global credential.helper cache

此命令可防止git询问用户名和密码,但不会永久询问,但默认限制为15分钟。

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

这会将默认限制移至1小时。

答案 15 :(得分:0)

也许,就像在我愚蠢的情况下一样,您可能会通过直接输入

来创建ssh密钥
ssh-keygen

因此它是使用本地系统用户凭据创建的,因此它们不匹配,请使用像这样的完整命令并重新创建

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

答案 16 :(得分:-3)

ssh is not right way

https is right way

方法不正确

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

正确的方法

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