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

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

私はOpenSSHに興味があり、そのディレクトリが特定のユーザーのための/etc/sshsshデーモン用であることを知っています。~/.ssh

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

ディレクトリ内容

しかし、これらの鍵の違いは何ですか?ユーザーとして使用するキーが私のホームディレクトリにあり、にあるキーの目的が何であるか混乱しています/etc/ssh

答え1

/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マンページを参照してください。既知のホストで使用される形式については、以下で説明します。sshdマンページ

答え2

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

~/.ssh は所有者ユーザーのキーペアを保持します。

対称キーとPKIの仕組みを見てください。ほとんどの場合、送信者と受信者の両方に固有の秘密鍵と公開鍵のペアが必要です。

関連情報