我多次收到以下错误:
无法读取远程存储库。请确保您具有正确的访问权限并且存储库存在。
我很困惑如何解决这个错误。
确保在GitHub帐户和本地计算机上使用正确的SSH密钥/用户名。这是你如何可以do that on GitHub
此外,您可以考虑使用替代Git管理器。我从来没有听说过Aptana,但我知道GitHub有一个很棒的GUI程序来管理你的存储库。
在未来,这在Linux / Unix操作系统(如Ubuntu)上更加容易和简化。 Ubuntu面向开发人员,默认情况下安装了正确的Git和SSH。
我也有完全相同的错误,并由于某种原因重新启动我的电脑解决了错误。也许它也适用于其他人:P
如果它是公共回购,只需使用https
进行克隆。无需使用密码或设置SSH密钥。
如果你想将任何存储库从本地推送/拉到远程(git hub) 第一次结账
$ git push https://<git-hub url>
使用用户名和密码凭证正常工作
$ 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>
我在Ubuntu上遇到与Pycharm相同的问题,解决方案是使用https代替SSH,例如:https://github.com/Bedo1212/myrepo.git
如果您使用的是SSH,请确保您使用的是允许SSH的网络。大多数公共网络仅允许HTTP(S)流量。
嗨我的问题是我的客户没有问我是否认出了密钥。打开终端并做ssh -T [email protected]
工作。终端的响应询问我是否要添加密钥,我说是,之后,我的客户端工作正常
我有一个类似的问题,直到我意识到,我通过代理地址运行我的机器为我的互联网连接,它恰好关闭主机连接。这可能是为数不多的原因之一。
对我来说,我已经遵循了Adding new ssh key中提到的所有步骤以及与此问题相关的其他辅助链接。但问题是网络访问。解决方案 - 使用VPN访问我的Github Enterprise。 (在我的案例中,Georgia Tech VPN for github.gatech.edu)
除了在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加载了这个身份文件
ssh-add -l
4096 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX mykey (RSA)
然后我将我的遥控器设置为包括正确的用户
git remote set-url origin [email protected]: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 [email protected]:myuser/myrepo.git
* [new branch] master -> master
瞧
私人回购我遇到了完全相同的问题。通过https和ssh克隆同样的错误
然后我通过github提交了一个提交(只用空行更新了README.md
)
令人惊讶的是,这解决了这个问题。虽然知道为什么会很好!
假设你已经根据github的instructions完成了正确的SSH密钥配置,那么可能是使用https进行拉取的问题,然后使用git + ssh进行推送
使它更清楚
如果你使用https来拉
git pull https://github.com/user/repo.git
然后你改变了远程URL
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
现在你的推动应该有效
ssh-add -A在MacOS Sierra 10.12.6中解决了我的问题。
我之前对公共和私人回购都没有任何问题。
今天我尝试克隆或git pull for private repo,但它遇到了上述问题。
搜索后,这对我来说是完美的解决方案。
在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
我使用ssh在我的私有Ubuntu服务器上遇到了同样的问题。
我的解决方案是:
在我的私人服务器上打开shell
git init --bare /path/<myapp>.git
然后,从我的开发者笔记本电脑
git push <remote_repo> <local branch>
终于运作良好。
PS:
我从来没有尝试过,但使用https进行远程回购似乎比ssh更好。
我希望这有帮助。
如果您最近更新了OSX,则必须致电ssh-add -A
。看看这个答案:https://apple.stackexchange.com/questions/254468/macos-sierra-doesn-t-seem-to-remember-ssh-keys-between-reboots
安装根/ 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
这是一个老帖子,但这是他们发现的唯一有用的东西。