我正在使用带有EGit(捆绑)的Eclipse Indigo RC4。我有一个项目已经提交到我的本地存储库,现在我想把它推送到我在GitHub中的远程存储库。
从命令行工具推送/拉取可以很好地工作(我已经配置了基于RSA密钥的SSH身份验证)。
但当我尝试从EGit推送(通过指向GitHub的SSH)时,我会收到一个输入密码短语的提示。但当我输入正确的密码短语时,它会再次提示输入相同的密码短语(注意:用户名显示为git,因为这是使用GitHub时的默认值。我想这不会是个问题)。
在Eclipse首选项下,我进行了双重检查,以确保它被配置为使用我生成的RSA令牌。
通过以下链接进行了排序http://www.eclipse.org/forums/index.php/t/197428/.
我创建了一个指向/usr/bin/ssh
的环境变量GIT_SSH
(这是我在命令行中使用的SSH实现),并启动了Eclipse。当这个环境变量存在时,Eclipse使用我的shell的SSH工具进行连接,并且没有提示密码短语,它运行得很好。
更简单的是从eclipse轨道存储库(p2软件站点)将JSch捆绑包更新到0.1.44:http://download.eclipse.org/tools/orbit/downloads/drops/R20110523182458/repository/
根本问题实际上是JSch<0.1.44不支持更新的加密方案AES-128:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=326526
在Eclipse Juno上,Jsch已经>1.44,但问题仍然存在(对我来说)。我还尝试设置GIT_SSH,但这也不起作用。我以前的密钥是由ssh-keygen生成的,我只能猜测这不会生成合适的密钥。
我所做的工作是这样的:
-
使用Eclipse生成新的DSA密钥-创建1024位密钥Eclipse->首选项->常规->网络连接->SSH2->密钥管理
[它可能适用于RSA,我没有尝试]
-
将生成的公钥复制到远程回购
-
点击[Save Private Key](保存私钥)按钮,不输入密码
-
重新启动ECLIPSE
Eclipse/EGit现在将与远程Git Repo同步,而不需要密码短语-phew!