// This works
git clone https://github.com/foreverjs/forever.git
// This one also works
git clone git@github.com:foreverjs/forever.git
// This one didn't work
git clone git://github.com/foreverjs/forever.git
第三个错误消息是:
Cloning into 'forever'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
据我所知,通过SSH或HTTPS的git clone比git://
协议更受限制。我真的很困惑,为什么我收到此错误消息,因为git://
协议甚至不需要身份验证。
github现在只允许通过SSH或HTTPS使用git clone,还是我错过了什么?
答案 0 :(得分:1)
我本地计算机中的gitconfig文件导致了这个问题,我在〜/ .gitconfig文件中找到以下两行:
[url "ssh://"]
insteadOf = git://
如果我删除了这两行,git://协议将不会通过SSH运行,因此不再有权限问题
答案 1 :(得分:0)
它对我很有用:
$ git clone git://github.com/foreverjs/forever.git
Cloning into 'forever'...
remote: Counting objects: 3258, done.
remote: Total 3258 (delta 0), reused 0 (delta 0), pack-reused 3258
Receiving objects: 100% (3258/3258), 782.12 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1341/1341), done.
Checking connectivity... done.
您是否正确设置了公钥?
但git://
是不同的协议,如手册页中所述:
git:
通过直接TCP连接(或代理,如果已配置)的匿名git协议
它不安全(不加密)所以不建议使用。
github现在只允许通过SSH或HTTPS使用git clone,还是我错过了什么?
首选方法是使用SSH或HTTPS,因为您始终通过不安全的Internet连接(除非您位于GitHub的数据中心 - 不太可能)。 git
协议可以在您信任的Intranet或本地网络中派上用场。另请注意
像" git://example.org/path/to/repo.git"将被重写为" ssh://example.org/path/to/repo.git"推送,但拉取仍将使用原始URL。
答案 2 :(得分:0)
我在使用 git bash 进行永无止境的控制台打印时遇到了同样的错误。
就我而言,我删除了 Windows 凭据管理器和我的 .gitconfig 中所有与 Git 相关的条目,然后我使用了 Github Desktop 的克隆功能。
在 Github Desktop 中,我不得不重置我的凭据(用户名和开发人员令牌),它再次对我有用。