web-dev-qa-db-ja.com

/ etc / ssh /と〜/ .sshの違いは何ですか?

私はOpenSSHを楽しんでいます。/etc/sshディレクトリはsshデーモン用であり、~/.sshディレクトリは特定のユーザー用であることがわかっています。

どちらのディレクトリにも秘密鍵と公開鍵が含まれています。

Diectories Contents

しかし、これらのキーの違いは何ですか?ユーザーとして使用しているものがホームディレクトリにあるため、混乱しています。/etc/sshにあるキーの役割は何ですか?

6
Kavish Gour

/etc/sshは、システムの構成を提供します。ユーザーのデフォルト構成(/etc/ssh/ssh_config)、およびデーモンの構成(/etc/ssh/sshd_config)です。 /etc/ssh内のさまざまなホストファイルはデーモンによって使用されます。これらのファイルには、サーバーを識別するために使用されるホストキーが含まれています。キーペアによっても識別されます。サーバーは通常、RSA、ECDSA、Ed25519などの複数のタイプのキーを提供するため、複数のキーペアが使用されます。 (ユーザーは複数のキーを持つこともできます。)

さまざまなキーファイルは次のように使用されます。

  • 秘密鍵がある場合は、それを使用して、接続している任意のサーバーでユーザーを識別します(接続しようとしているアカウントのサーバーの承認済みキーに格納されている公開鍵と一致する必要があります)。
  • サーバーの秘密鍵は、サーバーを識別するためにクライアントによって使用されます。そのようなIDは~/.ssh/known_hostsに格納され、サーバーのキーが変更されると、SSHはそれについて不満を述べ、特定の機能を無効にして中間者攻撃を軽減します。
  • 公開鍵ファイルには、リモートサーバーにコピーする必要のある文字列が(~/.ssh/authorized_keysに)保存されます。直接使用されることはありません。
  • サーバーの公開鍵ファイルには、既知のホストリストにコピーして事前に入力できる文字列を保存します。また、直接使用されることもありません。

最後の部分はそれほど頻繁には使用されません。デフォルトのSSHモデルは「TOFU」(最初の使用時に信頼)として知られています。デフォルトでは、接続は初めて使用されるときに信頼され、SSHは予期しない変更のみを考慮します。ただし、最初の接続を信頼できると便利な場合もあります。サーバーのオペレーターはサーバーの公開鍵を通信でき、ユーザーは最初の接続の前に既知のホストにこれらを追加できます。

詳細は ssh_config および sshd_config のマンページを参照してください(システム上のman ssh_configおよびman sshd_config)。既知のホストで使用される形式は the sshd manpage で説明されています。

7
Stephen Kitt

/ etc/sshは、ホスト(コンピューター/オペレーティングシステム)の秘密鍵と公開鍵のペアを保持します

〜/ .sshはその所有者ユーザーの鍵ペアを保持します

対称鍵とPKIがどのように機能するかについて少し調べます。ほとんどの場合、送信者と受信者の両方が独自の秘密鍵と公開鍵のペアを必要とすることがわかります。

2
R. Ferraz