无法从远程存储库读取

时间:2013-04-26 21:37:02

标签: github aptana

我多次收到以下错误:

  

无法读取远程存储库。请确保您拥有正确的访问权限并且存储库已存在。

我对如何解决此错误感到非常困惑。

22 个答案:

答案 0 :(得分:19)

确保您在GitHub帐户和本地计算机上使用正确的SSH密钥/用户名。这是你怎么做的 do that on GitHub

此外,您可以考虑使用替代Git管理器。我从来没有听说过Aptana,但我知道GitHub有一个很棒的GUI程序来管理你的存储库。

将来,这在Linux / Unix操作系统(如Ubuntu)上更加容易和简化。 Ubuntu面向开发人员,默认情况下安装了正确的Git和SSH。

答案 1 :(得分:6)

Click this

我遇到了同样的问题 - 这是由我使用SSH密钥而不是HTTPS URL引起的。我通过Intellij导入项目创建了我的存储库,它必须通过HTTPS推送。

答案 2 :(得分:5)

我与私人回购有完全相同的问题。 通过https和ssh

克隆相同的错误

然后我通过github进行了提交(只用空行更新了README.md

令人惊讶的是,这解决了这个问题。知道为什么会这么好!

答案 3 :(得分:3)

假设您已经根据github instructions完成了正确的SSH密钥配置,那么可能是使用https进行拉取,然后使用git + ssh进行推送

使其更清晰

如果你使用https来拉

git pull https://github.com/user/repo.git

然后您更改了远程网址

git remote set-url origin git+ssh://github.com/user/repo.git

并尝试在进行一些更改后提交

git push origin master

你可能会在我身上发现这个错误

擦除本地存储库并使用git + ssh重新克隆

git pull git+ssh://github.com/user/repo.git

现在你的推动工作

答案 4 :(得分:3)

ssh-add -A MacOS Sierra 10.12.6 中解决了我的问题。

之前我对公共和私人回购都没有任何问题。

今天我尝试克隆或git pull for private repo,但它遇到了上述问题。

搜索后,这对我来说是完美的解决方案。

答案 5 :(得分:2)

在Windows打开文件上:
C:\Users\<USER_NAME>\.ssh\config

您应该在“ config”文件中定义主机:

host gitlab.com
 HostName gitlab.com
 IdentityFile ~/.ssh/id_rsa_user_private_key

host bitbucket.org
 HostName bitbucket.org
 IdentityFile ~/.ssh/id_rsa_user_private_key

host github.com
 HostName github.com
 IdentityFile ~/.ssh/id_rsa_user_private_key

答案 6 :(得分:1)

我使用ssh在我的私有Ubuntu服务器上遇到了同样的问题。

我的解决方案是:

在我的私人服务器上打开shell

git init --bare /path/<myapp>.git

然后,来自我的开发者笔记本电脑

git push <remote_repo> <local branch>

终于运作良好。

PS:

我从未尝试过,但使用https进行远程回购似乎比ssh更好。

我希望这有帮助。

答案 7 :(得分:0)

我在使用带有 HTTPS 身份验证的 Visual Studio 的 Github 扩展时遇到了同样的问题。

以下是我解决它的步骤:

1) 在 windows 中启动命令提示符(windows 键 + R,然后键入“cmd”)(您可能应该在管理员帐户)

2)复制/粘贴这两个命令:

git config --global url."https://github.com/".insteadOf git@github.com:
git config --global url."https://".insteadOf git://

为了验证,执行这个命令:

git config --global --edit

它将显示配置文件,它应该包含以下四行:

[url "https://github.com/"]
  insteadOf = git@github.com:
[url "https://"]
  insteadOf = git://

enter image description here

3) 转到您的浏览器并退出您的 Github 帐户。(这一步非常重要

enter image description here

4) 在 Visual Studio 中,转到“视图”->“团队资源管理器”。添加该视图后,单击“管理连接”按钮,如果您已登录 Github 帐户,请退出。

enter image description here

enter image description here

5)点击“连接”按钮,然后点击“使用浏览器登录”。

enter image description here

6) 登录你的 Github 账号,重定向后即可设置。

enter image description here

答案 8 :(得分:0)

一个简单的解决方案是从github / gitlab删除旧的ssh密钥,然后再次添加相同的密钥。这很容易解决,您必须忙于任何事情

答案 9 :(得分:0)

就我而言,我生成了新的密钥对,但是却忘记了在github.com(设置)中更新公钥。

答案 10 :(得分:0)

尝试以下3个简单步骤:

这很简单。我已经证明了以下链接的简短的3个步骤。

  1. 检查the existence of SSH keys。如果存在,那就太好了:您可以使用它。如果没有,那么您将拥有to create one
  2. 您将需要add the ssh key to the ssh-agent。如果代理正在处理任务,则需要通过将其写入控制台/终端eval $(ssh-agent -s)来唤醒代理。然后,您只需添加密钥,
  3. 尝试推送您的存储库。希望它能工作。

答案 11 :(得分:0)

除了在ssh配置中设置身份文件外,我还必须将git remote设置为正确的用户-https://www.keybits.net/post/automatically-use-correct-ssh-key-for-remote-git-repo/中的完整解决方案

vi ~/.ssh/config
Host github.com-myuser
  HostName github.com
  User git
  IdentityFile ~/.ssh/mykey

我确保我已将此身份文件装入ssh-add -l <​​/ p>

ssh-add -l
4096 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX mykey (RSA)

然后我将遥控器设置为包括正确的用户

git remote set-url origin git@github.com-myuser:myuser/myrepo.git

然后推送成功

git push -u origin master
Enumerating objects: 146, done.
Counting objects: 100% (146/146), done.
Delta compression using up to 4 threads
Compressing objects: 100% (144/144), done.
Writing objects: 100% (146/146), 9.71 MiB | 7.48 MiB/s, done.
Total 146 (delta 10), reused 0 (delta 0)
remote: Resolving deltas: 100% (10/10), done.
To git@github.com-myuser:myuser/myrepo.git
 * [new branch]      master -> master

Voila

答案 12 :(得分:0)

对我来说,我遵循了Adding new ssh key中提到的所有步骤以及与此问题相关的其他辅助链接。 但是问题是网络访问。解决方案-使用VPN访问我的Github Enterprise。 (在我的案例中为github.gatech.edu的Georgia Tech VPN)

答案 13 :(得分:0)

我有一个类似的问题,直到意识到,我正在通过用于Internet连接的代理地址运行我的计算机,并且碰巧关闭了主机连接。这也可能是少数原因之一。

答案 14 :(得分:0)

嗨,我的问题是我的客户没有问我是否认识到钥匙。打开终端并执行ssh -T git@github.com可以正常工作。终端中的响应询问我是否要添加密钥,我回答是,然后,我的客户工作正常

答案 15 :(得分:0)

如果您使用的是SSH,请确保您使用的网络支持SSH。大多数公共网络仅允许HTTP(S)通信。

答案 16 :(得分:0)

我在Ubuntu上使用Pycharm遇到了相同的问题,解决方案是使用https而不是SSH 例如 : https://github.com/Bedo1212/myrepo.git

答案 17 :(得分:0)

如果您要将任何存储库从本地推/拉到远程(git hub)
第一次结帐

$ git push https://<git-hub url>

使用用户名和passwd凭据可以正常工作

$ git push git@<git-hub url>
  

失败
  无法读取远程存储库。请确保您具有正确的访问权限,并且存储库存在。

这意味着您需要将 id_rsa.pub 添加到 authorized_keys

goto 
$ cd /home/admin/.ssh
$ls
$vi authorized_keys
add id_rsa keys(n no of keys you can add)
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA0KJDLOiiXj9XdMxiCT9KvaKfuxFQi+CIiklaN5hHsNgYOu7TijqyONEu5fONLoAo/cshLa+KuargyTrtizwcP4TPcTXZhhJrM0GUDJragw7SMVIs/5xJBGAyHKJ1YUMGO7+nJTmsCLx6PFOlQYveuriiVVCCZerGCLH+UtSXK3z+l7hx9NiDg3/ylOLc3f3SLxrJKn0gMTgK7BHJFXo4PguuPjWZLVdUDX+XKiqtT2n4IsYs6N9qVFG3zUgNlEjZM47NK/ytAC0max98pK+QNzsuaQOo/IShJ1TOw5wwScflPArVJ2AyROqAe7cfQg7q12I9olASFd3U5NazfZCTYAvWA1kz9UZEWLJ1Br1XOkPqOleMM8KCp/PXzz8H0kISkMIji0/QuiZOPEBsKlszXjlALcXR8Mg1uiZVWy48i9JheyXyj1ToCj6cPScpgFHp3DAGSlKKbE1EFaVfeeyGAnHESlnDDg3Gq5xSsB9Okqm3V5t8GpFaJbV68BxQ4BK6HJ21A3CinV4LdV3hR/OBUbDG2EcI+ZKRDjlpJuu4YU= stace@pretend-machine
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAywWhrwq4FjHt+UuwZcZePxtjtZOENFpOjufycaYso2nTlzNwnAQEQRfbqsUxKVtOtGxgApIkUvjRIjNBdJE6iOzvBXZhhJrM0GUDJragw7SMVIs/5xJBGAyHKJ1YUMGO7+nJTmsCLx6PFOlQYveuriiVVCCZerGCLH+UtSXK3z+l7hx9NiDg3/ylOLc3f3SLxrJKn0gMTgK7BHJFXo4PguuPjWZLVdUDX+XKiqtT2n4IsYs6N9qVFG3zUgNlEjZM47NK/ytAC0max98pK+QNzsuaQOo/IShJ1TOw5wwScflPArVJ2AyROqAe7cfQg7q12I9olASFd3U5NazfZCTYAvWA1kz9UZEWLJ1Br1XOkPqOleMM8KCp/PXzz8H0kISkMIji0/QuiZOPEBsKlszXjlALcXR8Mg1uiZVWy48i9JheyXyj1ToCj6cPScpgFHp3DAGSlKKbE1EFaVfeeyGAnHESuXC9wkSeFZCEyMJ+RgJxMkBXNZmyycbwsSqAeGJpMEUDlwzu2GD0obBz0HXqg9J1Xallop5AVDKfeszZcc= stace@another-machine

:wq!

转到github-->settings--->ssh---->add new key---->id_rsa.pub

$git push git@<git-hub url>

答案 18 :(得分:0)

如果是公共回购,只需使用https进行克隆。无需使用密码或设置SSH密钥。

答案 19 :(得分:0)

我也有完全相同的错误,并且出于某种原因重新启动我的电脑解决了错误。也许它适用于其他人:P

答案 20 :(得分:0)

安装根/ CA证书

鉴于CA证书文件foo.crt,请按照以下步骤在Ubuntu上安装它:

在/ usr / share / ca-certificates中创建额外CA证书的目录:

sudo mkdir /usr/share/ca-certificates/extra

将CA .crt文件复制到此目录:

sudo cp foo.crt /usr/share/ca-certificates/extra/foo.crt

让Ubuntu将.crt文件相对于/ usr / share / ca-certificates的路径添加到/etc/ca-certificates.conf:

sudo dpkg-reconfigure ca-certificates

这是一篇很老的帖子,但这只是他发现的有用之处。

答案 21 :(得分:0)

如果您最近更新了OSX,则必须致电ssh-add -A。看看这个答案:https://apple.stackexchange.com/questions/254468/macos-sierra-doesn-t-seem-to-remember-ssh-keys-between-reboots