私はこれについて考えていましたが、私のホストは帯域外サポートを提供しているので、帯域外でキーのフィンガープリントを作成し、自宅からそのサーバーに接続するときにそれを比較するだけで済みます。
アウトオブバンド アクセス以外に、接続先のホストが実際に購入したサーバーであることを確認する方法はありますか?
これは実際にはどのように行われるのでしょうか?
答え1
私の理解が正しければ、あなたは帯域外チャネル以外に、SSHサーバーの公開鍵の指紋を安全に取得する手段があるかどうかを尋ねていると思います。厳密に言えば、答えは次のようになります。いいえなぜなら、理論的には、中間者 (MITM) が偽の SSH サーバーを設定し、ユーザーが入力した資格情報に関係なく「ログイン」できるようにする可能性があるからです。実際のサーバーの公開鍵のフィンガープリントを事前に知らなければ、偽のサーバーのフィンガープリントが実際のサーバーのフィンガープリントではないことを知る方法はありません。
実際には、ほとんどの人は (ほとんどの場合、当然のことながら) MITM が実際になりすましを行う可能性は非常に低いと想定しており、そのため、初めて接続するときに提示されるサーバー キーのフィンガープリントが、偽物のものではなく、実際の SSH サーバーのものであると単純に受け入れています。
もちろん、時間の経過とともにサーバーに何度もSSH接続を行うと、MITMがなりすましを試みる可能性が高まります。幸いなことに、最初の接続以降は、サーバーの公開鍵がファイルに保存されますknown_hosts
。そのため、MITMがする特定の接続試行中に何らかの悪ふざけを試みる(後最初の例のように、SSH クライアントは、受信したサーバー キーが期待したものと一致しないことを直ちに警告し、接続は中止されます。
結論として、もしあなたがサーバーの鍵を知るための帯域外の手段を持っているなら、ファイルを更新する最初の接続を行うときにそれを使って鍵を検証すべきですknown_hosts
。しかし、そのような手段がない場合でも、理論上のセキュリティリスクはありますが、リスクはおそらく非常に小さいです。