パスワードなしのSSH - 基本

パスワードなしのSSH - 基本

パスワードのない設定を試していますssh。オンラインで基本チュートリアルを読みましたが、基本プロセスは理解しにくいです。

私はクライアント側に座っていて、サーバーにログインしたいとします(偶然ローカルネットワークにありますが、それは問題ではありません)。とにかく、私にはサーバーから鍵ペアを生成し、公開鍵をクライアントにコピーするのが合理的だと思います。サーバーでキーペアを生成するのが適切な理由は2つあります。

  • ログイン情報がキーペアに含まれるように、パスワードなしのSSHを実行したいサーバーアカウントにすでにログインしています。
  • 明らかに、クライアントはサーバー公開鍵のみを必要とします。

SSHを介してサーバーに接続すると、クライアントはサーバーによって生成された公開鍵を送信します。公開鍵はサーバーの秘密鍵と一致し、ログインが許可されます。

しかし、私が読んだすべてのチュートリアルにはクライアントに生成されたキーペアがあり、これは頭を破るようです。この記事を読むことは、次のことにつながりません。あなたの私の脳が爆発すると思います。私は何を見逃していますか?

ベストアンサー1

私は一歩後退し、非対称暗号化がどのように機能するかを見るのが役に立つと思いました。すべてのエンティティ(クライアント/サーバー)は、数学的に関連付けられた公開鍵と秘密鍵と呼ばれる一対の鍵で始まります。

標準手順では、クライアントの公開鍵をサーバーにコピーします。クライアントが接続されると、サーバーはクライアントが実際に鍵ペアを所有していることを確認する必要があります(公開鍵は公開されます。つまり、他の当事者と共有されます)。したがって、公開鍵を取得し、任意のメッセージ(*)を暗号化してクライアントに送信します。クライアントは暗号化されたメッセージを受信し、秘密鍵でそれを復号化した後、サーバーに「これはメッセージですか?」と尋ねます。サーバーが同意すると、クライアントは認証されたと見なされ、接続が続行されます。

シナリオを裏返して何が起こるのか見てみましょう。サーバーには鍵ペアがあり、公開鍵はクライアントにあります。秘密鍵は、身元を証明するために必要であり、サーバーでのみ使用できます。したがって、クライアントはサーバーの身元を確認できますが、その逆は不可能です。サーバーの公開鍵(やはり公開)を取得した人は誰でもサーバーに接続できます。これは明らかにセキュリティの問題です。

サーバーは、各クライアントに独自の鍵ペアとクライアントの秘密鍵を使用させることで、各クライアントの身元を確認できます。サーバーの承認済みキーのリストに公開キーが追加されたクライアントのみを接続できます。クライアントの秘密鍵は通常、追加の暗号化層とパスワードで保護されます。

おすすめ記事