7

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

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

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

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

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

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

有人在 egit+pageant 上取得成功吗?或者知道它是否不可能?

更新

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

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

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

我不完全确定,但目前的挂断似乎是围绕纯 java unix-domain 套接字库的一些许可问题,以及升级 Eclipse 使用的纯 java SSH 实现。

最近的一个错误(编号 360663)显示所需的 jsch 版本已提交给 Eclipse(据我所知,它应该是下一个版本的一部分——应该是 2012 年 6 月结束)。

4

4 回答 4

8

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

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

说明适用于 PuTTY 0.62、最新的 EGit 和 Eclipse Juno x64。

于 2012-08-01T15:53:12.517 回答
3

找到了一个更好的解决方案,允许使用 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不兼容 ,plink.exe 需要大写“-P”作为 ssh 端口。


将此文件另存为“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上传环境变量。


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

于 2013-02-06T07:09:31.223 回答
0

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

于 2011-10-14T06:24:42.100 回答
0

EGit + pageant 实际上对我有用(与 Eclipse SSH2 主页/私钥配置相反......)

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

User Settings选项卡中,Team > Git > Configuration我只输入了我的姓名和电子邮件地址,而 signinkey 为空。在Repository Settings选项卡中,url 是从 github 的 ssh 链接复制并粘贴的,并且 puttykey 路径是正确的(例如 . C:\Users\you\.ssh\yourkey.ppk)。我正在使用没有密码的密钥。

我还添加了以下 Windows 系统变量:GIT_SSH=C:\\Program Files\\TortoiseGit\\bin\\TortoisePlink.exe

一旦选美比赛开始并添加了密钥,它应该可以工作......

于 2011-11-25T10:18:09.777 回答