私のシナリオ:
localhost: contains my private key
serverA: contains my public key
serverB: contains my public key
次回ログインしていますサーバーAいくつかのファイルのコピーに関連するいくつかのタスクを実行します。サーバーB共通ユーザー名でログインするため、秘密鍵を保存したくありません。サーバーA。つまり、理想的には次のことができます。SSHセッションを通じてのみ私の秘密鍵を送信してください。使用可能にしたssh-agent
後から始めます。サーバーA到着サーバーB、私の秘密鍵をメモリから読み取って検証に使用します。サーバーB。可能ですか?
答え1
はい、それはssh -A
まさに標識の目的です。
ssh-agent
これは実行に追加されたキーに対してのみ機能します。地元のマシン。接続時にパスワードを入力する必要がある場合serverA
(またはパスワードのないキーを使用している場合)は機能しません。
マニュアルページから:
-ㅏ
認証プロキシ接続転送をイネーブルにします。これは設定ファイルでホストごとに指定することもできます。プロキシ転送は慎重に有効にする必要があります。リモートホスト(エージェントのUNIXドメインソケット用)でファイル権限をバイパスできるユーザーは、転送された接続を介してローカルエージェントにアクセスできます。攻撃者はプロキシからキーマテリアルを取得できませんが、プロキシにロードされたIDを使用して認証できるキーに対してアクションを実行する可能性があります。
-ㅏ
認証プロキシ接続転送を無効にします。
ただし、引用の警告に注意を払うことをお勧めします。-A
キーは公開しませんが、誰でもssh-agentソケットへの読み取り/書き込みアクセスを許可します。サーバー上ソケットが見つかる場所を知っている場合は、資格情報を使用できます。通常のユーザーとしてログインしているため、そのユーザーへのアクセス権を持つ他の人は誰でもアクセスできます。あなたの代理人。
私の考えでは、SSH_AUTH_SOCK
サーバー上にあるのは、サーバー上で実行されているSSH-agentに直接トラフィックを転送することだけです。地元のマシン。