无法使用Git和Bitbucket推送

时间:2012-11-20 20:52:42

标签: eclipse git ubuntu bitbucket egit

我一直在尝试使用EGit和Bitbucket开始一个项目,但是我无法将项目推送到服务器中的存储库。

这些是我遵循的步骤(我将尝试非常具体,以便其他人可以将其用作教程模式;即使它不适合我,也可能适用于其他人):

1)我使用this tutorial

在Ubuntu 12.10上安装了Git

2)关注GitHub this tutorial

  • 在Eclipse中启动一个新的C ++项目
  • 在窗口>偏好>一般>网络连接> SSH2>在Key Management选项卡中,我生成了一个新的RSA密钥,并将其添加到Bitbucket上我的存储库的部署密钥列表中。
  • 右键点击eclipse项目:Team>分享项目;团队>添加到索引;团队>提交
  • 窗口>显示视图>其他> Git> Git存储库
  • 右键单击遥控器>创建远程>选中“配置推送”并输入我的项目名称
  • 添加推送网址:ssh://git@bitbucket.org/myuser/myrepository.git,协议:ssh; port:空白;用户:git;密码:空白
  • 参考映射下的高级按钮,并选择“主”版本。如果此步骤有效,则表示RSA密钥已在Bitbucket和EGit中正确配置。否则会显示连接错误。

一切都完成了。但是,当我按“推”时,我收到以下错误:

ssh://git@bitbucket.org/myuser/myrepository.git: push not permitted

我已经尝试了所有可能的配置:切换到新的工作空间,更新Eclipse,创建新的存储库,重新安装Git ......任何想法?

6 个答案:

答案 0 :(得分:11)

好吧,我终于找到了解决问题的方法。

它只是改变了身份验证模式。如果使用HTTPS链接,而不是使用SSH链接,一切都很完美。看来SSH只能以只读模式工作。

SSH/HTTPS selection

当然,身份验证方法不同:您必须输入密码,不再需要存储在Bitbucket中的SSH密钥。

对于那些遇到EGit问题的人,我建议按照eugener的方式自动配置EGit。然后,您只需选择HTTPS作为身份验证模式即可推送存储的提交。

答案 1 :(得分:3)

在Eclipse中配置远程Git存储库的 much simpler way

  1. 在BitBicket上创建一个空的仓库
  2. 复制repo的URL
  3. 使用“Git Repositories”视图克隆回收机器。
  4. 将您的项目分享到新克隆的回购邮件。
  5. 由于克隆了回购 - 自动配置了远程设置。这意味着您可以立即推送

答案 2 :(得分:0)

答案 3 :(得分:0)

可能相关,我按照以下说明解决了“auth fail”问题: http://wangpidong.blogspot.com.es/2012/05/how-to-use-bitbucket-with-egit-in.html

来自: Configuring egit with BitBucket

答案 4 :(得分:0)

在这个特定情况下,我同意原始问题下Olivier J.'s评论的解决方案。

但是我有类似的问题而且是由其他原因引起的。我解决了,发生了什么事情:

  1. 我一直在Bitbucket(A)上使用一些私有存储库,其中包含一些用户帐户和一些公钥(X)来访问它。我已在我的pageant Putty钥匙链中加载了密钥X。

  2. 然后我在Bitbucket创建了一个新的 public 存储库(B),其中包含一个不同的用户帐户和另一个公钥(Y)。我也将此密钥添加到pageant

  3. 当我尝试访问存储库B时,显然公共密钥X而不是Y被使用,因为..对于SSH客户端,两个连接都是相同的 - 同一主机(bitbucket.org)上的相同用户(git)!并且首先使用了关键X因为..是否已经加载了?或者也许因为它的名字按字母顺序排在第一位我不确定但结果是......

  4. 使用X 的B的只读访问被授予,因为存储库是公共的,并且任何有效的Bitbucket用户密钥都足以获得此类访问权限!

  5. ..但写入(推送)所需的密钥Y,SSH没有使用。

  6. 所以一般的提示是:通过SSH访问错误解决奇怪的只读git,仔细检查SSH实际使用了哪个私钥

    我通过一次仅在pageant加载一个键--X或Y - 解决了这个问题,但我希望以更聪明的方式做到这一点 - 如果您知道如何,请在评论中告诉我。

答案 5 :(得分:0)

使用Bitbucket我这样做:

  1. 在bitbucket中创建一个存储库
  2. 使用https url
  3. 克隆空存储库
  4. 使用团队将eclipse中的项目连接到存储库 - >共享选项并选择克隆存储库的位置
  5. 索引(暂存)项目文件
  6. 提交并推送