ssh-agentに追加する秘密鍵のリストを指定する方法はありますか?

ssh-agentに追加する秘密鍵のリストを指定する方法はありますか?

数時間の調査の後、ついに私のコンピュータがgnome ssh-askpassを使って私のキーをもう要求しない理由を見つけました。シンプルだが、それを把握するのに長い時間がかかった。なぜなら…まあ…同様の問題を抱えている人のほとんどは、まったく異なる理由でこれを行います(例えば、ssh-agentが実行されていません)。

私の場合、下にキーが多すぎてサブディレクトリを~/.ssh除いてすべて移動しました。これは、次のようにコマンドラインオプションのみを使用して特定のシステムにアクセスするのに適しています。id_rsa~/.ssh/other_keys-i

ssh -i ~/.ssh/other_keys/topsecret domain

それ以外の場合は、ディレクトリ内のすべてのキーをテストしないようにSSHに指示する必要があります~/.ssh。なぜなら、そのようなことが起こると、試行回数がなくなるからです。一般的に3~5回程度です。

この問題を解決するには、次のこともできます。

ssh -i ~/.ssh/topsecret -o 'IdentitiesOnly yes' domain

これには多くの入力が必要です(たとえば、設定ファイルに追加することはできますが、クイックテストのためには面倒です)。

だから...これはすべてそこに接続したいときにうまく機能しますが、ssh今アクセスするたびにssh-agent正しくssh-askpass設定されています。

それでは…何が与えられますか?

とにかく実行すると、パスワードを要求せずにssh-add自動的にキーを追加します。ssh-agentその後、キーを使用する必要があるとすぐにssh-askpassパスワードを入力し、続行できるキーが自動的に開始されます(ただし、環境にはその名前の変数は必要ありません)。

ただし、キーがサブディレクトリに定義されている場合は見つからないため追加されず、ssh-agent使用時にsshサブディレクトリに見つからないため、ssh-agentコントロールに直接追加されます。 Taichungでパスワードを尋ねますが、GNOMEポップアップには表示されません。

キーをすぐ下に戻すと~/.ssh問題は解決しますが、背面が破損しているため、良い解決策ではありませんssh -i ...。 (sshに1つのキーのみを使用するように指示して別の問題を解決するオプションがあることを知っていますが、コマンドラインで指定されたキーを使用して-o ...sshを最初にテストする必要があるため、両方の問題が解決されると思います。 。

だから...次のコマンドを実行すると:

ssh-add -D

ssh-agent(1)現在存在するすべてのキーを削除し、(2)パスワードを要求せずに下のすべてのキーを再インストールします(~/.ssh少なくともコマンドを実行するときはありませんssh-add)。

すべてのパスワードを一度に入力せずに別のディレクトリ(たとえば、私のサブディレクトリ)ssh-addにあるキーを追加するように要求する方法(または他のツール)はありますか?~/.ssh/other_keys

答え1

完全な答えではありませんが、マニュアルページを見ると、ssh-agent次の段落があります。

エージェントには最初は秘密鍵はありません。追加キーを使用してくださいssh-add(1)。引数なしで実行すると、 ssh-add(1)ファイル~/.ssh/id_rsa~/.ssh/id_dsa。 IDにパスワードがある場合は、端末(ある場合)または小さなX11プログラム(X11で実行されている場合)からパスワードを要求してください。どちらも該当しない場合、認証は失敗します。その後、ID をエージェントに送信します。複数の ID をエージェントに保存でき、エージェントはこれらの ID の 1 つを自動的に使用できます。現在エージェントが保持しているIDを表示します。~/.ssh/id_ecdsa~/.ssh/identityssh-add(1)ssh-add -l

したがって、現在ロードされているキーを確認できssh-agent、デフォルトではその段落で説明されているキーがロードされます。

答え2

AddKeysToAgentこの場合、このオプション(最新のOpenSSHバージョンで利用可能)が役に立ちますか?

ssh-agent(1) 実行にキーを自動的に追加するかどうかを指定します。このオプションをyesに設定し、キーがファイルからロードされると、ssh-add(1)を介して同様に、キーとそのパスワードがデフォルトの有効期間としてエージェントに追加されます。このオプションが質問に設定されている場合、ssh(1)はキーを追加する前にSSH_ASKPASSプログラムを使用して確認を要求します(詳細はssh-add(1)を参照)。このオプションがOKに設定されている場合は、ssh-add(1)に-cオプションが指定されているかのように、キーを使用するたびに確認する必要があります。このオプションを no に設定すると、エージェントにキーは追加されません。パラメーターは、はい、確認、質問、またはいいえ(デフォルト)でなければなりません。

関連情報