0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】踏み台経由でSSH接続時に「REMOTE HOST IDENTIFICATION HAS CHANGED!」警告が出た話

Posted at

1. はじめに

自身のAWS検証環境にて踏み台(Bastion)経由で SSH 接続していたところ、
以下のような警告が出ました。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Host key for [localhost]:2222 has changed and you have requested strict checking.
Host key verification failed.

見慣れない方にとっては「セキュリティ事故か!?」と思うかもしれません。
そこで今回は、この警告の原因と安全な対処法をまとめておきます。
(個人の検証環境での経験ベースです。)

2. 警告の原因

SSH ホストキーとは

SSH は接続先サーバーを認証するために「ホストキー(公開鍵)」を利用します。
初回接続時にこのキーを記録し、次回接続時に一致するかをチェックします。

一致する → 信頼できるサーバーと判断して接続

不一致 → 「サーバーがすり替わっているかもしれない」と警告

つまり、「REMOTE HOST IDENTIFICATION HAS CHANGED!」は
過去に記録したホストキーと異なるキーを検出したことを意味します。

3. 踏み台構成での典型的な原因

プライベートサブネット上の EC2 にローカルから直接アクセスできない場合、
踏み台ホストを経由してポートフォワーディングを行うケースがあります。

(ローカルPC)
|
| ssh -L 2222:private-ec2:22 ec2-user@bastion
|
(Bastion)
|
└── Private EC2

このとき、SSH は「[localhost]:2222」としてホストキーを保存します。

つまり、
・EC2を再起動
・踏み台経由の経路変更
・Auto Scaling による再作成
などにより、実際に接続先となるEC2のホストキーが変化すると、
SSHは「[localhost]:2222のキーが変わった」と誤認し、警告を出します。

4. 解決方法

一時的な対応(検証環境向け)

ローカルPCの known_hosts に記録された古いキーを削除します。

C:\Users{ユーザー名}.ssh\known_hosts

5. まとめ

・踏み台+ポートフォワード構成では、環境変更時に発生しやすい
・検証環境では known_hosts の更新でOK
・本番では Elastic IP + 固定ポート で安定運用を推奨

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?