使用https可以毫无问题地将本地存储库推送到我的Bitbucket存储库。但是出于某些原因,即使我的ssh密钥似乎可以正常工作,使用git的ssh也不起作用。
这是有效的https:
$ git remote -v
origin https://<myName>@bitbucket.org/<myName>/<myRepo>.git (fetch)
origin https://<myName>@bitbucket.org/<myName>/<myRepo>.git (push)
以下是无效的原始网址:(已编辑:以明确使用了set-url。)
$ git remote set-url origin git@bitbucket.org:<myName>/<myRepo>.git
$ git remote -v
...
origin git@bitbucket.org:<myName>/<myRepo>.git (push)
它会产生可怕的错误:
$ git push -u origin --all
...
fatal: protocol error: bad line length character: logg
我意识到“ logg”是更长的错误消息的开始。为了读取该消息,我尝试了以下方法:
$ ssh git@bitbucket.org git-receive-pack <myName>/<myRepo>
但是这在出现似乎没有帮助的消息后锁定:
<a long hex string> refs/heads/masterreport-status delete-refs side-band-64k quiet atomic ofs-delta agent=git/2.10.5
0000
按Enter键四次后,最终返回:
fatal: protocol error: bad line length character:
(是的,没有指定字符。)
我的ssh密码似乎有效,但只是为了确认我尝试过:
$ ssh -vT git@bitbucket.org
这返回了一个很长的答复。快结束了:
You can use git or hg to connect to Bitbucket. Shell access is disabled
没有更多的成功,我尝试对原始URL进行多种变体,包括:
...
origin ssh:git@bitbucket.org:<myName>/<myRepo>.git (push)
导致的结果:
ssh: Could not resolve hostname ssh: nodename nor servname provided, or not known
fatal: Could not read from remote repository
所有这些都清楚吗? ssh不应该在这里工作吗?我还能尝试什么?
答案 0 :(得分:1)
备用URL应该是ssh://git@bitbucket.org/<myName>/<myRepo>.git
(不是ssh:git...
)
incident mentioned in the comments仍然是最可能的解释。
我刚刚测试了SSH URL(使用git ls-remote git@bitbucket.org:<myName>/<myRepo>.git
),它确实起作用。