SSH 公開キーがクライアントではなくサーバー上にあるのはなぜですか?

SSH 公開キーがクライアントではなくサーバー上にあるのはなぜですか?

公開鍵をサーバー上に保管する理論がよくわかりません。公開鍵と秘密鍵の金庫の例えで言うと、アリスのボックスでは、アリスが秘密鍵を保持し、公開鍵がボブに配布されます。サーバーがロックボックスの役割を果たしているように見えますが、なぜ公開鍵を保持するのでしょうか?

答え1

サーバーには、ユーザーが生成したキーペアとは完全に別の秘密鍵と公開鍵があることに留意してください。サーバーの秘密鍵は通常、サーバー構成とともに保存され、公開鍵は接続を試みたときにサーバーから送信されます。クライアントは、サーバーの公開鍵を known_hosts ファイルと比較します。適切に使用すれば、MITM 攻撃を防止できます。

個人アカウントの秘密鍵をお持ちです。サーバーは、使用しようとしているアカウントの秘密鍵が承認されているかどうかを確認するために、公開鍵を必要とします。

あなたの例を使用すると、ボブとアリスの両方が秘密鍵と公開鍵を持っています。事前に共有された公開鍵、または接続の一部として共有された公開鍵は、秘密鍵で暗号化されたデータが正当であることを確認するために使用されます。クライアントが公開鍵を持っていない場合、または別の公開鍵を持っている場合は、恐ろしい警告が表示されます。サーバーがクライアントの公開鍵を持っていない場合、アクセスは許可されません。

答え2

ログイン時に、ユーザーであるあなたは、自分が自分であることを示す情報を提供する必要があります。そのため、認証のためには秘密鍵が必要です。サーバーは、あなたになりすます人(あなたの名前でログインしようとする人)に、その証明を求めるからです。

仕組みとしては、サーバーが短いテキストを送信し、それを暗号化して公開鍵で復号化するように要求します。この操作は、秘密鍵を持つ人だけが実行できます。

答え3

公開鍵は、秘密鍵から数学的に導き出された非常に大きな数値です。

それは、2つの数字がリンクされるように導き出され、

ただし、公開鍵しか知らない人には秘密鍵は発見されません。公開鍵は、自分自身を認証したい相手や暗号化されたメッセージを送信したい相手に送信するものです。公開鍵は機密情報ではないため、保護する必要はありません。公開することができます。 [メールアドレス]

答え4

サーバーの公開鍵は、閉じることはできるが開けることはできない、サーバーだけが開けられるラッチ付きの開いた金庫だと考えた方がよいだろう。本当の問題は、公開鍵を信頼できるかどうかだ(本当にアリスのBox?) の場合、どこから取得しても定義上公開されており、それが PKI の目的です。

関連情報