7

Eclipse の「egit」モジュールを介してプライベート リモート SSH git リポジトリにアクセスしようとしています。WindowsでEclipseを実行しています。Eclipse は、認証転送のためにパテの pagent と自動的に連携するようには見えず、egit で使用される SSH のカスタマイズ (たとえば、plink.exe の使用) に関するドキュメントが見つかりません。

putty/plink を使用するように他の Windows git クライアントをセットアップする方法に関する Web 上のドキュメントを見つけました (例: msysgit 用)。

Puttyでサーバーにログインするために常にsshキーを使用しているため、sshキーが正常に機能すると確信しています。

具体的には、Git Repository Viewer を使用し、[Clone Remote Repository] ​​をクリックして、ホスト、リポジトリ パス、プロトコル (ssh)、およびユーザーを入力します。I [次へ] をクリックします。サーバー固有のバナーがポップアップ表示されるので、接続していることがわかります。それから私は

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

ssh ログインは sshkey のみによるものであるため、これが機能しないのはそのためです (ただし、少なくとも基本を理解したことがわかります)。

egit+pageantで成功した人はいますか? または、それが不可能かどうかを知っていますか?

アップデート

Eclipse には、それが使用する pure-Java SSH (jsch) 実装が内部的にあり、Eclipse に含まれるその実装は (まだ) 認証エージェント プロトコルをサポートしていないため、これは機能しないようです。

を介してプラットフォーム ssh エージェントをサポートするためのいくつかのパッチが提案されています (リンクについては @Janning に感謝します)。この Eclipseバグ 179924を参照してください。更新 #24 には、提案されたパッチに関する次の励ましのメモが含まれています。

http://github.com/にアクセスでき、一部のプロジェクトは putty の pageant で egit でクローンできることを確認しました。

完全にはわかりませんが、現在のハングアップは、純粋な Java UNIX ドメイン ソケット ライブラリに関するライセンスの問題と、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

eclipse(openssh) キーではなく pagent キーを使用できる、より良い解決策が見つかりました。私または他の誰かが、Windows で plink と pagent (キーパスの有無にかかわらず) を使用して Eclipse、GitBash を使用しようとしています。

根本的な原因は、エラー メッセージの嘘です。無効なパラメーターとサーバー キーに関連する何もないため、plink.exe の呼び出しに失敗したこと原因である可能性があります。(JGIT 開発者は修正する必要があります)。

EGIT は JGit を使用し、"-p [ポート] [サーバー] "git-upload-pack '[プロジェクト]'" plink.exe に引数を渡します。

引数はopensshに適していますが、 plink.exeと互換性がありません。plink.exe では、ssh ポートに 大文字の「-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を実行して環境変数をアップロードします。


Windows 用の Eclipse および GIT Bash と pagent の接続をお楽しみください。

于 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は、名前とメール アドレスのみを入力し、サインイン キーは空です。タブでは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 に答える