1. ホーム
  2. windows

[解決済み] Windowsでgitがパスフレーズを記憶できない理由

2022-04-29 22:02:21

質問

gitを使い始めたばかりなのですが、パスフレーズを覚えてもらうことができません。

しかし、まだ

*\subnus.mvc>git push origin master
Enter passphrase for key '/c/Users/Subnus/.ssh/id_rsa':

解決方法は?

この質問が2年前にさかのぼることは承知していますが、私も同じ問題を抱えており、ここでのいくつかの回答は、私にとっては完全な答えではありませんでした。ここでは、msysgitに加えてTortoiseGitを使用しているかどうかに応じて、3つのステップバイステップの解決策を紹介します。

最初の解決策 Windows、msysgit、PuTTYを想定しています。

  1. 指示に従い、msysgitとPuTTYをインストールします。

  2. (オプション) PuTTYをパスに追加します。 (これを行わない場合、以下の PuTTY コマンドへの参照は、適切な実行ファイルへのフル パスを先頭に付ける必要があります)。

  3. まだの場合は、GitHub の指示か Git ホストの指示に従ってキーハッシュを生成します。

  4. まだの場合は、PuTTYのpageant.exeで使用するために鍵を変換します。 puttygen.exe . 手順は、PuTTYのドキュメントにあります。 この有用なガイド その他、様々な場所で使用されています。

  5. PuTTYの実行 pageant.exe を開き("Add Key")、鍵のパスフレーズを入力してください。

  6. Windowsの環境変数ダイアログにアクセスします(「コンピュータ」を右クリック、「プロパティ」をクリック、「システムの詳細設定」をクリック、または「詳細設定」タブをクリック、「環境変数」をクリックします)。 以下の環境変数を追加してください。

    GIT_SSH=C:\fullpathtoplink.exe

    C:\fullpathto" を、plink.exe がある PuTTY のフルインストールパスに置き換えてください。これは、"User variables"セクションに追加するのが最善でしょう。また、plink.exeに使用するパスがPageant(pageant.exe)に使用するパスと一致することを確認します。PuTTYは他のアプリケーションと一緒にインストールされることがあるため、複数のインストールがある場合があります。あるインストールからplink.exeを使用し、別のインストールからpageant.exeを使用すると、問題が発生する可能性が高いです。

  7. コマンドプロンプトを開いてください。

  8. Github.comでホストされているgitリポジトリに接続しようとしている場合は、以下のコマンドを実行してください。

    plink.exe [email protected]

    接続しようとしている git リポジトリが他の場所でホストされている場合、次のように置き換えます。 [email protected] を適切なユーザー名とURLに置き換えてください。(Githubを想定) サーバのホスト鍵がキャッシュされていないことを知らされ、それを信頼するかどうか尋ねられるはずです。を付けて答えてください。 y . これにより、サーバのホスト鍵がPuTTYの既知のホストのリストに追加されます。このステップを踏まないと、gitコマンドは正常に動作しません。Enterを押すと、Githubはシェルアクセスを提供しないことを通知します。それはいいんです...必要ないんです。(他のホストに接続していて、シェルアクセスを提供された場合、何もせずにリンクを終了するのがベストでしょう)。

  9. すべて完了です。 これで、コマンドラインから Git コマンドを実行できるようになりました。pageant.exeを 起動時に自動的に .ppk ファイルをロードします。 を必要とする頻度にもよりますが。

第二の解決策 Windows、msysgit、TortoiseGitを想定しています。

TortoiseGit には PuTTY の実行ファイルと、特別に修正された plink (TortoisePlink.exe と呼ばれる) が付属しており、これを使用するとより簡単に行えます。

  1. msysgitとTortoiseGitを指示通りにインストールします。

  2. まだの場合は、GitHub または Git ホストの指示に従い、キーハッシュを生成してください。

  3. 繰り返しになりますが、まだの場合は、TortoiseGit の pageant.exe で使用するために、TortoiseGit の puttygen.exe . 手順はPuTTYのドキュメント、最初の解決策でリンクされた有用なガイド、およびサイバースペースの他のいくつかの場所に記載されています。

  4. TortoiseGit の pageant.exe を開き("Add Key")、鍵のパスフレーズを入力してください。

  5. Windowsの環境変数ダイアログにアクセスします(「コンピュータ」を右クリックし、「プロパティ」をクリック、「システムの詳細設定」または「詳細設定」タブをクリックし、「環境変数」をクリックします)。 以下の環境変数を追加してください。

    GIT_SSH=C:\fullpathtoTortoisePlink.exe

    C:\fullpathto" を、TortoiseGit のフルインストールパスで置き換えてください。おそらく、 "User variables" セクションに追加するのがベストでしょう。 また、TortoisePlink.exe へのパスが Pageant (pageant.exe) に使用するパスと一致していることを確認してください。場合によっては、PuTTYが他のアプリケーションと一緒にインストールされていることがあるため、PuTTYが複数インストールされていることがあります。TortoiseGit のインストールから TortoisePlink.exe を、別のアプリケーションのインストールから(あるいはスタンドアロンの PuTTY のインストールから) pageant.exe を使用すると、おそらく問題が発生します。

  6. すべて完了です。 これで、コマンドラインから Git コマンドを実行できるようになりました。初めて git リポジトリに接続しようとすると、おそらくサーバーのホストキーがキャッシュされていないことを知らされ、そのサーバーを信頼するかどうかを尋ねられるでしょう。Yes"をクリックします。(これは TortoisePlink.exe が動作しているところです。)

    あなたは、pageant.exeを ブート時に自動的に.ppkファイルをロードします。 を必要とする頻度にもよりますが。

第3の解決策 Windows、msysgit、ネイティブコマンドプロンプトを想定しています。

  1. msysgitのインストール
  2. MS-DOSのコマンドプロンプトでgitが使えるようにすること
  3. 実行する start-ssh-agent
  4. SSHパスフレーズの入力
  5. すべて完了です。これで、Git コマンドがネイティブのコマンドプロンプトで動作するようになりました。