SourceTree では、認証として OpenSSH を使用しており、次のように SSH キー (Windows 上) を作成して追加しました。
ssh-keygen -t rsa -C "[email protected]"
(入力したファイル名、パスワードなど)SSH エージェントにキーを追加しました:
eval "$(ssh-agent)"
ssh-add id_rsa
cat id_rsa.pub
公開鍵を印刷するためにSSHキーをGitLabに追加しました「ツール > 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 エージェントを自動的に起動する] のチェックを外します。