答え1
この警告は、SSHを介してサーバーに初めて接続したときに表示される通常の現象です。 SSHはまだサーバーの公開鍵を知っていないため、これを有効と見なす必要があるかどうかを尋ねるメッセージが表示されます。接続が傍受されるか、間違ったサーバーに接続されていると疑う理由がない場合は、安全に受け入れることができます。ホスティングプロバイダにサーバーの公開鍵を確認するように依頼することもできますが、これは私が過度に過度に見えます。
次に、同じサーバーに接続すると、SSHは公開鍵を確認してIDを確認し、鍵が変更された場合にMITM攻撃を示す可能性があるため警告します。 (実際には、これはシステム管理者がサーバー用の新しいキーペアを生成したことを意味することがよくあります。)
また、ISP がキーを提供しないのが一般的です。公開鍵認証を設定し、パスワードベースの認証を削除するには、鍵を生成して直接実行する必要があります。これにより、あなたは秘密鍵の唯一の所有者になります。
答え2
SSHはホストキーを使用して特定のコンピュータを確認する被害者でないことを確認するために中間者攻撃。ホストキーは通常、コンピュータにSSHをインストールすると自動的に生成されるため、コンピュータを再インストールしたり、管理者が何らかの理由で変更した場合は、ssh-keygen
ホストキーが変更されることがあります。
SSHクライアントは、そのコンピュータに属するSSHホストキーを格納する「既知の」リモートホストのローカルデータベースを作成します。ここで、コンピュータはFQDNまたはIPアドレスによって識別されます。 Linuxでは、通常.ssh/known_hosts
WindowsのPuTTYユーザーホームディレクトリにあるファイルです。レジストリキーに保存。接続時にリモートホストによって提供されたホストキーがローカルデータベースのエントリと一致しない場合、SSHクライアントはコンピュータへの接続を続行するかどうかを決定するように警告を発行します(中間者攻撃が疑われるなど)。
これで、最初の接続時にリモートホストのホストキーがまだローカルデータベースに保存されていません。したがって、クライアントは、コンピュータが実際に「正しいコンピュータ」であるかどうかを知ることはできません。その可能性が最も高いので、提供されたキーを信頼し、そのコンピュータへのすべての追加接続に対して信頼できる認証として保存するオプションを提供します(このホストを信頼するなら...)。指紋で識別されるホストキーがわかっている場合は、する[はい] をクリックし、接続するコンピューターのローカル データベースにホスト キーを保存できます。その後のすべての接続に対して、SSHクライアントはホスト鍵がまだ同じであることを確認し、そうであれば警告は発行されません。
ホストキーが正しいことを本当に「確かに知る」唯一の方法は、ホスティングプロバイダに連絡して、コンピュータのホストキーの指紋を知らせるように求めることです。
@Ginnungagapがコメントで指摘したように、SSHホストキーを「公開」する方法はいくつかあります。SSHFPレコードまたはSSHホスト証明書しかし、PuTTYは最近です。証明書のサポートが追加されました。、まだSSHFPには該当しません。