SourceTree は再起動のたびに SSH 認証のパスワードを要求します 質問する

SourceTree は再起動のたびに SSH 認証のパスワードを要求します 質問する

SourceTree では、認証として OpenSSH を使用しており、次のように SSH キー (Windows 上) を作成して追加しました。

  1. ssh-keygen -t rsa -C "[email protected]"(入力したファイル名、パスワードなど)

  2. SSH エージェントにキーを追加しました:eval "$(ssh-agent)" ssh-add id_rsa

  3. cat id_rsa.pub公開鍵を印刷するためにSSHキーをGitLabに追加しました

  4. 「ツール > SSH キーの追加」に続いてパスワードを入力して、SourceTree に公開キーを追加しました (「ツール > オプション > SSH クライアント構成」で OpenSSH を選択しました)。

これらの手順を実行すると、コードをプッシュおよびプルできるようになります。ただし、SourceTree を再起動するたびにターミナルがポップアップ表示され、パスワードを再度入力する必要があります*。このパスワードを SourceTree / SSH エージェントに記憶させるにはどうすればよいですか?

ps. 私のキーは ~/.ssh/ ではなく /d/MyName/Gitlab/ のようなディレクトリに保存されていますが、これは問題にならないはずですよね?

編集:

*ターミナルに表示されるメッセージ:

SourceTree is loading your SSH key into the agent for authentication Please enter your passphrase if prompted to do so Enter passphrase for D:\MyName\GitLab\.ssh\id_rsa:

編集2:

この解決策私の問題も解決しませんでした:

ベストアンサー1

Windows OpenSSH ssh-agent を使用してキーを管理できます。問題は、Windows 上の Sourcetree が、すでに実行中のサービスを使用する代わりに、独自の ssh-agent インスタンスを起動しようとすることです。これを機能させることができたとしても、Sourcetree の ssh-agent プロセスはキーを Windows キーチェーンに保存しないため、起動時にキーのパスフレーズの入力を求められます。

Pageant を SSH エージェントとして使用する方法については、たくさんの説明がありますが、あなたがここにいるのはそのためではありません。あなたがここにいるのは、OpenSSH エージェントを、OpenSSH 形式のキーとパスフレーズを使用して、あちこちでパスフレーズの入力を求められることなく使用したいからです。

秘訣は、Pageant へのすべてのリクエストを OpenSSH エージェント経由でプロキシすることです。

OpenSSHをインストールします。ssh-agentサービスを起動し、自動に設定します。エージェントに秘密鍵を追加します。

ssh-add <key_file>

認証するホストに公開鍵を追加します。

ssh 経由で認証できることをテストします。

ssh -T [email protected]

Windows アカウントにログインすると秘密鍵が読み込まれるようになり、パスフレーズを入力する必要がなくなります。

Sourcetree、WinSCP、Fabricなどのプログラムやライブラリが、通常Pageantを使用する代わりにssh-agentによって提供されるキーを使用できるようにする素晴らしいプログラムがあります。https://github.com/ndbeals/winssh-pageant

指示に従って winssh-pageant をインストールし、Windows の起動時に開始するタスクとしてスケジュールします。

これで、Pageant の NamedPipe へのすべての呼び出しが OpenSSH エージェントにプロキシされるようになります。

SourceTree を OpenSSH で動作させるための最後の手順は、少し直感に反します。[ツール] | [オプション] | [全般] に移動し、SSH クライアントを PuTTY/Plink に設定し、[Sourcetree を開いたときに SSH エージェントを自動的に起動する] のチェックを外します。

おすすめ記事