web-dev-qa-db-ja.com

サーバー側でのSSHキー認証

私は通常、sshキー認証を次のように実行します。

  1. クライアントPCでキーを生成(# ssh-keygen -t rsa
  2. キーをサーバーにコピーします(ssh-copy-idを使用するか、他の方法で)
  3. クライアントPCからサーバーにアクセスします。

AWSサーバー(Amazon Webサーバー)がサーバーの作成中にキーを提供し、クライアントがログインに使用できることを確認しました。

これで、キーを生成してクライアントに配布するサーバーができました。そのキーを持つすべての人がサーバーにアクセスできる必要があります。

  1. どうすればこれを達成できますか?
  2. クライアントに配布するこれらのキーに名前を付けるにはどうすればよいですか?公開鍵ですか?

ここで公開鍵/秘密鍵に関する理論が欠けていますか?

4
Midhun Jose

Amazon linuxは、あなたと同じように key-pair を使用しますが、秘密鍵を配布します。

したがって、サーバー側でユーザーを生成する場合は、通常どおり/home/your_user/.ssh/authorized_keysに公開鍵を追加し、秘密鍵をクライアントに配布する必要があります。

秘密鍵は理由により秘密と呼ばれます。 "」としてセキュリティ上の懸念に注意する必要があります。

4
Federico Galli

これをしないでください。すべてのクライアントが同じキーペアを使用してサーバーにアクセスし、クライアントの1つが離れた場合、全員を切断せずにアクセスを削除することはできません。

少なくとも、各クライアントに独自の鍵ペアを生成させ、公開鍵を送信してもらいます(これは、秘密鍵を送信するよりも少し安全ではありません)。次に、すべての公開鍵をサーバーのauthorized_keysファイルに入れます。さらに良いことに、サーバー上に各クライアントに独自のユーザーアカウントを作成し、各クライアントの公開鍵を関連するユーザーアカウントのauthorized_keysファイルに配置します。

18
MadHatter