クライアントのSSH秘密鍵 - 公開鍵マッピング

クライアントのSSH秘密鍵 - 公開鍵マッピング

authorized_keysサーバーとクライアント間のSSH通信では、クライアントは秘密鍵を介して認証します。サーバー上のファイルに複数の公開鍵がある場合、サーバーはどの公開鍵がクライアントに属しているかを知ることができます。

答え1

クライアントは公開鍵IDを送信し、サーバーはその鍵がリストにあることを確認しますauthorized_keys

  • クライアントは、まず認証するキーペアのIDをサーバーに送信します。

  • サーバーは、クライアントがログインするアカウントのauthorized_keysファイルでキーIDを確認します。

  • ファイルに一致するIDを持つ公開鍵が見つかると、サーバーは乱数を生成し、公開鍵を使用して番号を暗号化します。

  • サーバーはこの暗号化されたメッセージをクライアントに送信します。クライアントが関連付けられた秘密鍵を所有している場合は、その鍵を使用してメッセージを復号化して元の番号を公開できます。

https://www.digitalocean.com/community/tutorials/understanding-the-ssh-encryption-and-connection-process

答え2

これはRFC4252クライアントとサーバー間で送受信されるメッセージが含まれます。

  • 最初のメッセージには、保存されたSSH_MSG_USERAUTH_REQUESTキーと比較する公開鍵ブロブが含まれています。authorized_keys
  • サーバーの応答SSH_MSG_USERAUTH_PK_OKまたは失敗
  • 2番目の項目SSH_MSG_USERAUTH_REQUESTには、公開鍵(再びBLOBと仮定)と既知のデータの署名(公開鍵を含む)が含まれます。

最初の2点は必須ではなく、最後の点だけを実行できます(ただし、どのキーが使用されているかを調べると、コンピューティングのパフォーマンスが節約されます)。

関連情報