私のホームディレクトリの.sshフォルダにあるKnown_hostsファイルと/ etc / sshにあるファイルの違いは何ですか?

私のホームディレクトリの.sshフォルダにあるKnown_hostsファイルと/ etc / sshにあるファイルの違いは何ですか?

/home/XXX/.ssh/known_hostsSSHについての深い理解がなく、(または~/.ssh/known_hosts)とファイル/etc/ssh/ssh_known_hostsの関係について少し混乱しています。

誰かがこれを説明できますか?

答え1

known_hostsホームディレクトリのファイルは、sshが各新しいサーバーのIDを自動的に保存する場所です。あなた入場。known_hostsもちろん、他のユーザーも自分のファイルを持っています。

のファイルは/etc手動でのみ書き込むことができ、システム内のすべてのユーザーが共有することを除いて同じです。

このファイルの一般的な用途/etcは、システム管理者が組織内のすべてのサーバーのIDを入力することです。これにより、各ユーザーがローカルリソースに初めてアクセスするときに「はい」と答える必要がなくなり、さらに重要なのはセキュリティが向上することです。

このファイルの目的は、known_hosts最後に接続したのと同じサーバーに接続されていることを確認して中間者攻撃を防ぐことです(DNSハッカーなどが密かに交換したわけではありません)。弱点は、known_hosts以下の場合、中間子を検出できないことです。最初あなたは接続します。/etc管理者は、既知の良い署名でファイルを事前に入力して、ユーザーが垣間見ることから安全にすることができます。

答え2

~からSSH(1)マンページ、文書部分:

~/.ssh/known_hosts

    既知のホストキーのシステム全体のリストにはまだ含まれていませんが、ユーザーがログインしているすべてのホストのホストキーのリストが含まれています。このファイル形式の詳細については、sshd(8)を参照してください。

  ...

/etc/ssh/ssh_known_hosts

    既知のホストキーのシステム全体のリストです。このファイルには、組織内のすべてのコンピュータの公開ホストキーを含めるようにシステム管理者が準備する必要があります。世界中で読むことができるはずです。このファイル形式の詳細については、sshd(8)を参照してください。

以下はsshd(8)へのリンクです。

答え3

/etc/ssh/ssh_known_hosts ファイルには、 $HOME/.ssh/known_hosts すべての既知のホストのホスト公開鍵が含まれています。グローバルファイルは管理者がオプションで準備する必要があり、ユーザー固有のファイルは自動的に維持されます。ユーザーが未知のホストに接続するたびに、そのユーザーのキーがユーザー固有のファイルに追加されます。

関連情報