我收到此错误 -
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.
我该如何解决?
答案 0 :(得分:27)
通过您的远程“来源”的http网址更改您的ssh网址,请使用:
> git remote set-url origin https://github.com/<user_name>/<repo_name>.git
它会在git push上询问你的GitHub密码。
答案 1 :(得分:14)
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
答案 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 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 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答案):
应该没问题。
答案 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)
方法不正确
git remote set-url origin git@bitbucket.org:erhandemirciinstagram/..
正确的方法
git remote set-url origin https://erhandemirciinstagram@bitbucket.org/..