このエラーは、Git リモート サーバーに間違った公開キーがある場合や、Git リモート サーバーが SSH ホスト キーを変更した場合など、根本的な SSH 認証の問題がある場合に発生する可能性があります。
Eclipse は、[設定] -> [全般] -> [ネットワーク接続] -> [SSH2] で指定した .ssh ディレクトリを ssh 構成に使用します。"{your default user directory}.ssh\" に設定します。
問題を解決するには、まず Git に使用している ssh クライアントを特定する必要があります。これは GIT_SSH 環境変数に格納されます。[コンピューター] (Windows 7) を右クリックし、[プロパティ] -> [システムの詳細設定] -> [環境変数] を選択します。
GIT_SSH に plink.exe へのパスが含まれている場合は、PuTTY スタックを使用しています。
- 公開鍵を取得するには、PuTTYgen.exe を開き、秘密鍵ファイル (*.ppk) を読み込みます。リストされた公開鍵は、git リモート サーバーの公開鍵と一致する必要があります。
- 新しいホスト キーを取得するには、新しい PuTTY.exe セッションを開き、git@{git repo host} に接続します。
- [OK] をクリックし、[はい] と答えて新しいキーを保存します。
- ログイン プロンプトが表示されたら、PuTTY ウィンドウを閉じることができます。新しいキーが保存されました。
- エクリプスを再起動します。
GIT_SSH に「Git for Windows」ツリーの「ssh.exe」へのパスが含まれている場合は、Git for Windows の OpenSSH を使用しています。
- %HOME% をデフォルトのユーザー ディレクトリに設定します (Eclipse にリストされています。上記を参照してください)。
- %HOMEDRIVE% をデフォルトのユーザー ディレクトリのドライブ文字に設定します。
- %HOMEDRIVE% のデフォルト ユーザー ディレクトリへのパスに %HOMEPATH% を設定します。
- 公開鍵を取得するには、ファイル %HOMEDRIVE%%HOMEPATH%/.ssh/id_rsa.pub (または id_dsa.pub) をテキスト エディターで開きます。リストされた公開鍵は、git リモート サーバーの公開鍵と一致する必要があります。
- 新しいホスト キーを取得するには、次を実行します: cmd.exe
- Git Bash を実行する
- Ctrl+C
- bash プロンプトで、/c/path/to/git/for/windows/bin/ssh.exe git@{git remote host} を実行します。
- yes と入力して、新しいキーを受け入れます。
- ログイン プロンプトが表示されたら、次のように入力します。ctrl-c
- cmd.exe ウィンドウを閉じます
- エクリプスを再起動します。
最後に、外部 ssh クライアントにまだ問題がある場合は、GIT_SSH 環境変数を削除し、HOME 環境変数を Windows のデフォルトのユーザー ディレクトリに設定します。GIT_SSH 変数がない場合、EGit は内部の ssh クライアント (java) を使用します。上で指定した .ssh ディレクトリを SSH 構成ディレクトリとして使用します。
注: Git for Windows を使用している場合は、そのツールを使用して .ssh ディレクトリに SSH キー ペアを作成できます。
- %HOME% をデフォルトのユーザー ディレクトリ (Eclipse にリストされている) に設定します。
- %HOMEDRIVE% をデフォルトのユーザー ディレクトリのドライブ文字に設定します。
- %HOMEDRIVE% のデフォルト ユーザー ディレクトリへのパスに %HOMEPATH% を設定します。
- Git Bash を実行する
- Ctrl-C
- 実行: ssh-keygen.exe -t rsa -b 2048
- デフォルトのファイル名で保存
- パスフレーズを選択するか、パスフレーズなしで保存します。パスフレーズを使用して保存すると、git リモート サーバーからプッシュまたはプルするたびに、Eclipse によってパスフレーズの入力が求められます。
- Git Bash を閉じる
Eclipse の SSH2 設定ペインで GUI を使用して、ホストとキーを管理することもできます。