我执行必要的步骤来创建一个ssh密钥,将公钥上传到bitbucket ssh密钥。然后我使用https克隆一个回购。我注意到使用git @ XXX进行克隆不起作用,并且它提供了与服务器过期的消息连接。
如果我使用https克隆,则将repo克隆到我的本地计算机而不询问我的bitbucket用户名和密码。当我更改本地git目录并想要回到bitbucket repo时,我总是收到“身份验证失败”消息。我无法理解为什么我收到这条消息?当我git push我在命令行(mac os x)提示输入bitbucket.org的用户名和密码时,我输入正确的bitbucket用户名/密码,我总是收到验证失败的消息。
我不确定我做错了什么?如何解决这个问题。
--- ---- EDIT
这是我执行以下命令后得到的结果:
git clone git@bitbucket.org:ianmayo/gnd.git/wiki
Cloning into 'wiki'...
conq: repository access denied.
fatal: The remote end hung up unexpectedly
当我测试与bitbucket的连接时,它似乎正确地验证了我:
ssh -T git@bitbucket.org
conq: logged in as othmanelmoulat.
You can use git or hg to connect to Bitbucket. Shell access is disabled.
答案 0 :(得分:2)
如果我理解正确,如果你使用http(s)链接,SSH密钥不应该与进程有任何关系。如果您的存储库是公共的,那么http(s)链接可能会为您提供只读访问权限,这不会让您推回任何内容。
简而言之,如果您想使用ssh密钥身份验证,则应使用ssh-link进行克隆,即git @XXX
答案 1 :(得分:2)
在诊断问题之后,似乎我没有权限访问子回购“wiki”。我有权访问父repo gnd但由于某种原因在bitbucket中,给定的bitbucket repo下的wiki repo不是可见的,也不能通过git访问。但是我不确定这是否属实,以及为什么不允许使用wiki文件夹回购,尽管我已获得其主要回购协议的许可?
--- --- EDIT
当我们联系bitbucket支持团队时,他们确认他们有通过ssh克隆wiki repos的错误。以下是我们从bitbucket团队收到的消息。
我已对此进行了测试,并表明这是wiki的SSH克隆问题。您现在应该能够通过https克隆它。我们有 打开 https://bitbucket.org/site/master/issue/4600/cannot-clone-a-public-wiki-over-ssh 尽快解决这个问题。完成后我会再次更新。
干杯,Marcus Bertrand Bitbucket支持
答案 2 :(得分:1)
如果您使用bash作为shell,请尝试运行以下命令来诊断问题:
GIT_TRACE=2 git clone git@bitbucket.org:ianmayo/gnd.git/wiki