私たちは最近、2つのサーバー間でパスワードのない接続を確立しました。 Known_hostsファイルの内容に関連するセキュリティ問題があります。基本的に私たちの興味は、誰かが私たちのシステムにアクセスしてKnown_hostsファイルを見ることができれば、このボックスに接続されている残りのサーバーのIPアドレス情報を得ることができるということです。
Known_hostsファイルにIPアドレスが入力されないようにする方法を探しています。
この資料には、外部サーバーが既知のホストであるかどうかを確認するのを回避するソリューションがあります。
次のステートメントは、Known_hosts 検査をバイパスし、そのサーバー情報を既存のファイル/ssh/known_hosts
に入力するように求めるメッセージを表示せずに、外部サーバーにログインします。私は記事の一節を引用しました。
「空の Known_hosts ファイルにキーを送信すると、ホストキーの確認をスキップできます。
$ ssh -o “UserKnownHostsFile=/dev/null” -o “StrictHostKeyChecking=no” user@host”
これを実装するとき、Known_hostsチェックプロセスを抑制するように求めるプロンプトに加えて、接続しようとしているサーバーのIPアドレスはまだ既存のファイルに保存されていますか/ssh/known_hosts
、どこに保存されていませんか? (例: "UserKnownHostsFile=/dev/null")
この種のコマンドに精通している人はいますか? IPアドレスが保存されていないことを確認しようとしています。 /dev/null/について私が知っているように、これは実際には真実ですが、80%しか確信していません。誰でもこれを確認できますか?実際にSSHプロトコルを知る必要はなく、Linuxの専門家なら誰でも知っているはずです。
上記のように、UserKnownHostsFileを/ dev / nullにリダイレクトすると、IPアドレスが実際に.ssh / known_hostsファイルに保存されるのを防ぐことができます。ありがとうございます!
答え1
構成ssh
オプションHashKnownHosts
known_hosts
sshがホスト名とIPアドレスを元の名前の代わりにハッシュ形式で保存するようにします。ハッシュされたフォームは一方向変換であるため、元のホスト名またはIPアドレスを回復できません。これにより、元のホスト名またはアドレスをファイルに保存することなく、Known_hosts メカニズムを期待どおりに使用できます。
ハッシュされたKnown_hostsエントリは次のとおりです。
|1|G9jVmIB3FBUJ70EpHtCM8PAJhMo=|AlMl5Apfpp3CR+Iy2gZTd+7y6bo= ssh-rsa AAAAB3Nz...
このssh-keygen
プログラムは、次のファイルを管理するために使用できます。
ssh-keygen -H
既存の既知の_hostsファイルをハッシュ形式に変換します。ssh-keygen -F
Known_hosts ファイルから特定のホスト名が検索されます。ssh-keygen -R
ファイルから個々の項目を削除できます。