我一直在尝试使用EGit和Bitbucket开始一个项目,但是我无法将项目推送到服务器中的存储库。
这些是我遵循的步骤(我将尝试非常具体,以便其他人可以将其用作教程模式;即使它不适合我,也可能适用于其他人):
1)我使用this tutorial
在Ubuntu 12.10上安装了Git2)关注GitHub this tutorial。
ssh://git@bitbucket.org/myuser/myrepository.git
,协议:ssh; port:空白;用户:git;密码:空白一切都完成了。但是,当我按“推”时,我收到以下错误:
ssh://git@bitbucket.org/myuser/myrepository.git: push not permitted
我已经尝试了所有可能的配置:切换到新的工作空间,更新Eclipse,创建新的存储库,重新安装Git ......任何想法?
答案 0 :(得分:11)
好吧,我终于找到了解决问题的方法。
它只是改变了身份验证模式。如果使用HTTPS链接,而不是使用SSH链接,一切都很完美。看来SSH只能以只读模式工作。
当然,身份验证方法不同:您必须输入密码,不再需要存储在Bitbucket中的SSH密钥。
对于那些遇到EGit问题的人,我建议按照eugener的方式自动配置EGit。然后,您只需选择HTTPS作为身份验证模式即可推送存储的提交。
答案 1 :(得分:3)
在Eclipse中配置远程Git存储库的 much simpler way
:
由于克隆了回购 - 自动配置了远程设置。这意味着您可以立即推送
答案 2 :(得分:0)
答案 3 :(得分:0)
可能相关,我按照以下说明解决了“auth fail”问题: http://wangpidong.blogspot.com.es/2012/05/how-to-use-bitbucket-with-egit-in.html
答案 4 :(得分:0)
在这个特定情况下,我同意原始问题下Olivier J.'s评论的解决方案。
但是我有类似的问题而且是由其他原因引起的。我解决了,发生了什么事情:
我一直在Bitbucket(A)上使用一些私有存储库,其中包含一些用户帐户和一些公钥(X)来访问它。我已在我的pageant
Putty钥匙链中加载了密钥X。
然后我在Bitbucket创建了一个新的 public 存储库(B),其中包含一个不同的用户帐户和另一个公钥(Y)。我也将此密钥添加到pageant
。
当我尝试访问存储库B时,显然公共密钥X而不是Y被使用,因为..对于SSH客户端,两个连接都是相同的 - 同一主机(bitbucket.org)上的相同用户(git)!并且首先使用了关键X因为..是否已经加载了?或者也许因为它的名字按字母顺序排在第一位我不确定但结果是......
使用X 的B的只读访问被授予,因为存储库是公共的,并且任何有效的Bitbucket用户密钥都足以获得此类访问权限!
..但写入(推送)所需的密钥Y,SSH没有使用。
所以一般的提示是:通过SSH访问错误解决奇怪的只读git,仔细检查SSH实际使用了哪个私钥。
我通过一次仅在pageant
加载一个键--X或Y - 解决了这个问题,但我希望以更聪明的方式做到这一点 - 如果您知道如何,请在评论中告诉我。
答案 5 :(得分:0)
使用Bitbucket我这样做: