尝试使用ssh推送到Bitbucket时出错

时间:2020-02-27 19:54:20

标签: git ssh bitbucket

使用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不应该在这里工作吗?我还能尝试什么?

1 个答案:

答案 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),它确实起作用。