在Eclipse中使用putty的pagent和egit

时间:2011-10-14 01:13:25

标签: eclipse putty egit jsch

我正在尝试通过Eclipse'ell'模块访问私有远程SSH git存储库。我在Windows上运行Eclipse。 Eclipse似乎没有自动使用putty的pagent进行授权转发,我找不到任何关于自定义egit使用的SSH的文档(例如,使用plink.exe)。

我在网上找到了关于设置其他Windows git客户端以使用putty / plink(例如,对于msysgit)的文档,但我似乎无法找到关于Eclipse的egit和putty(或eclipse)的任何内容。 / p>

我确信ssh密钥正常工作,因为我一直用Putty登录服务器。

具体来说,我使用Git Repository Viewer,单击“Clone Remote Repository”,填写主机,存储库路径,协议(ssh)和用户。我点击“下一步”。我可以告诉它它的连接因为我得到了一个弹出我服务器的独特横幅。然后我得到了一个

Transport Error: Cannot list the available branches: Reason: <URI>: Auth fail

ssh登录只能通过sshkey登录,这就是为什么这不起作用(但至少它显示我已经掌握了基础知识)。

任何人都有成功的egit +选美?或者知道它是否不可能?

更新

似乎这不起作用,因为Eclipse在内部使用了纯Java SSH(jsch)实现,而Eclipse包含的实现(尚未)支持授权代理协议。

已经提出了一些支持平台ssh代理的补丁(感谢@Janning的链接)。请参阅此Eclipse bug 179924。更新#24包含有关拟议补丁的这一令人鼓舞的说明:

  

我已经确认我可以访问http://github.com/并克隆   一些项目由egit与putty的选美。

我不完全确定,但似乎当前的挂起是关于纯java unix域套接字库的一些许可问题,并且升级了Eclipse使用的纯java SSH实现。

最近的一个错误(number 360663)显示jsch已经提交给Eclipse的所需版本(据我所知,应该是下一个版本的一部分 - 应该是2012年6月底)。

4 个答案:

答案 0 :(得分:8)

在阅读了morellet.d的答案之后,我能够非常简单地为自己设置这个。

我添加了用户环境变量GIT_SSH并将其设置为“C:\ Program Files(x86)\ PuTTY \ plink.exe”因此,您只需将其设置为plink文件所在的位置即可。< / p>

说明使用PuTTY 0.62,最新的EGit和Eclipse Juno x64。

答案 1 :(得分:2)

找到一个更好的解决方案,允许使用pagent键而不是eclipse(openssh)键。 对于我或其他人,尝试在Windows上使用Eclipse,GitBash,plink和pagent(有或没有keepass)。

根本原因是错误消息谎言。由于参数无效而无法调用plink.exe而导致可能,并且与服务器密钥无关。 (JGIT开发人员应该修复)。

EGIT使用JGit,它将参数传递给“ - p [port] [server]”git-upload-pack'[project]'“ plink.exe。

该论据适用于 openssh ,但与 plink.exe 不兼容 ,对于ssh端口,plink.exe需要大写“ - P”


将此文件另存为“plink.cmd”

@ECHO OFF
SET c="plink.exe" -ssh -agent -l [username]

:loop
if NOT _%1_ == __ (
 IF _%1_ == _-p_ (
  SET c=%C% -P
 ) else (
  SET c=%C% %1
 )
 shift
 goto loop
)
%c%

在Windows中,运行 SETX GIT_SSH PATH_TO \ plink.cmd 上传环境变量。


使用Eclipse和GIT Bash for windows享受pagent的连接。

答案 2 :(得分:0)

eGit正在使用Eclipse内置SSH功能所知道的SSH密钥。将密钥加载到http://wiki.eclipse.org/EGit/User_Guide#Eclipse_SSH_Configuration所示的SSH2首选项页面。

答案 3 :(得分:0)

EGit + pageant实际上适合我(与Eclipse SSH2家庭/私钥配置相反......)

我在安装了TortoiseGit + msysgit的Windows 7上。

User Settings的{​​{1}}标签中,我只输入了我的姓名和电子邮件地址,并且该登录密码为空。 在Team > Git > Configuration标签中,网址是从github的ssh链接复制和粘贴的,而puttykey路径是正确的(例如Repository Settings)。我正在使用没有密码短语的密钥。

我还添加了以下windows系统变量:{​​{1}} = C:\Users\you\.ssh\yourkey.ppk

一旦使用添加的密钥启动选美,它应该可以工作......