かなりの仮想化を使用している小規模ネットワークの評価を行っています。 SSHサーバーのホストキーを生成した後、一部のLinuxマシンのクローンを作成しました。したがって、サーバーはすべて同じホストキーを持っています。これは悪いことだと確信していますが、理由は説明できません。これがなぜであるか、またはこれが悪用されるシナリオの例を説明できますか?それとも、単なる悪習の例ですか?
秘密鍵が共有されるほど、秘密性は低くなります。これは単なる一般的な評価です。状況によっては、これは無害な場合があります。 SSHサーバーの特定のケースでの手段は、これら3つのサーバーのセキュリティがオールオアナッシングシステムになることです。
一方、秘密鍵を共有することには、実際の利点があります。
したがって、セキュリティに関してマシンが互いに同等であることが意図されていない場合、秘密鍵の共有は明確な「方法」ではありません。ただし、areが同等の場合、秘密鍵を共有すると、一部の操作が簡単になります。何らかの形のロードバランシングが採用されている場合は、プライベートキーの共有を行う必要があります(ただし、ロードバランシングとSSHがめったに合わない場合)すべてのシステムが大規模なコンピューティングクラスタの要素である場合、秘密キーの共有は「許容可能な方法」と見なすことができます。
1台のマシンが危険にさらされており、攻撃者がキーを盗むことができる場合、これは悪いことです。その後、ユーザーが次に悪意のあるホストにログインしようとしたときに、ホストキーの変更警告をユーザーに知らせずに、他のマシンになりすますことができます。ネットワーク上に他のセキュリティメカニズムが配置されている場合、この脅威は大幅に軽減される可能性があります。
はい、これは悪いです。以前に述べたように、1つのホストが危険にさらされた場合、同じ秘密鍵を持つ他のホストをローテーションしてMITM攻撃を防ぐ必要があります。
より良い戦略は、ホストが立ち上がった後にキーを作成するか、イメージング後に新しいキーを生成することです。多くの異なるVMを安全にプロビジョニングする方法のアイデアについては、大手の何人か(AWS、linodeなど)が何をしているのかを見てください。
私は違う答えをするつもりです。
作成するものが「単一のシステムイメージ」である場合、共有サーバーキーを持つことがそれを効果的に行う唯一の方法です。すべてのサーバーのすべてのネットワークインスタンスが1つのサーバーである必要があります。
その意味は、他の回答が述べたとおりであり、「単一システムイメージ」の概念とも一致します。サーバーに4つのネットワークインターフェイスがあり、そのうちの1つが侵害された場合、サーバー全体が(もちろん)侵害されます。あなたが持っているのは、いくつかのネットワークインターフェースではなく、いくつかの物理または仮想インスタンスです。
これを行うことには「誤り」はありませんが、これを行うには[〜#〜] need [〜#〜]が必要であり、単に怠惰なだけではありません(単に怠惰になる...)[〜#〜] and [〜#〜]システムがこの種の連鎖的な妥協から自分自身を確実に保護するようにします。
TL; DR-これを行う必要がない場合は、行わないでください。
秘密鍵へのアクセスがなくても(他の答えはうまくカバーしています)、公開鍵へのアクセスだけが問題になる可能性があります。たとえば、Shodan.ioを使用して公開鍵を検索できるため、一連のIOTデバイスでホストキーペアを共有し、デフォルトのパスワードをオンのままにするなど、ばかげた操作を行うと、公開されているすべてのデバイスを見つけるのは簡単になります。 。