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?

VPSにOS再インストールした後SSH接続すると、WARNING: REMOTE HOST IDENTIFICATION HAS CHANGEDがでたので対処法

Last updated at Posted at 2025-03-23

はじめに

さくらVPSを使ってサーバー構築を練習しています。
以前構築したものをやり直したかったので、OSの再インストールを実行しました。
その後SSH接続すると、下記警告が表示されてしまいました。

対応内容と、openssh操作について深堀りしたのでまとめておきます。

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

環境

  • MacBook Pro M2(macOS Sonoma v14.0)
  • OpenSSH_9.3p2
  • LibreSSL 3.3.6

問題

OS再インストールを行うと、サーバー側のホストキーが更新される。
その状態でSSH接続すると、私のPCのknown_hostsに保存しているホストキーと合わない、そのため接続しようとしているサーバーが、異なるホストキーを見せてきているという警告メッセージが表示される。

解決方法

openSSHを使って、問題を解消。
known_hostsに保存されている、接続しようとしているサーバーのホストキー情報を削除して書き換える。

1.known_hostsファイルを確認する
下記コマンドを実行すると、ホストキー情報が保存されていることがわかります。

cat known_hosts | grep domain

2.known_hostsファイルからホストキー情報を削除する

ssh-keygen -R domain

3.ssh認証を行う
ホストキーが削除できたら、SSH接続を行います。
これで新しいホストキーがknown_hostsに保存されます。

ssh username@domain

問題自体はこれで解決できたと思います。

[おまけ]公開鍵暗号認証設定を行う

ここから先はおまけです。
sshを使ったパスワード認証はできるようになったので、公開鍵認証にしてよりセキュアにします。

1.公開鍵/秘密鍵を生成する
セキュリティの堅牢度合いは調整してください。
コメントに何を書くべきかは、あまり分かりませんでしたので、適当に書いています。

生成時に、ファイル名を入れるか
パスフレーズをどうするか確認されます

ssh-keygen -t ed25519 -a 100 -C "sakura_vps serverA"

2.生成した鍵をVPSサーバーに登録する
下記コマンドを実行すると、パスワード認証が行われます。
パスすると、指定した公開鍵情報が.ssh/authorized_keysに保存されます。

ssh-copy-id -i identity_file user@domain

接続して確認しましょう。
この時にファイルの権限も確認します。
600になっていれば良いと思います。なっていなければこの段階で変更しましょう。

ssh user@domain
password:

cat ~/.ssh/authorized_keys

3.接続用設定ファイルを作成する
~/.ssh/configというファイルを作成するとssh接続時に、このファイルを読み込んでくれます。

誰にでもいじられると困るので、一番使うユーザーだけで変更できるようにしておきます。

touch ~/.ssh/config
sudo chown username
sudo chmod 600 ~/.ssh/config 

4.設定を記述する
~/.ssh/configに以下の記述をします。

Host host(好きな名前)
    HostName ドメイン
    User ユーザー
    Port ポート
    IdentityFile 公開鍵パス
    PasswordAuthentication パスワード認証を使用するか
    AddKeysToAgent ssh-agentに追加するか
    IdentitiesOnly 使用できるIdentityFileを固定するか

5.公開鍵暗号認証を通す
設定が完了したら、公開鍵暗号認証を通します
configファイルのreloadは不要です。

セッション開始時は、パスフレーズの入力を求められます。
これ以降、セッションが切れるまでパスフレーズ入力を省略することができます。

ssh host
Enter passphrase for key '/Users/user/.ssh/host': 

6.ssh-agentセッションの確認
ssh-addコマンドを使うと、現在SSH Agentセッションに登録されているすべての鍵のリストが表示されます。

セッション中に使用できる鍵の確認や、鍵がエージェントに正しく追加されているか確認するときに使います。

ssh-add -l

鍵をssh-agentから削除するときは、下記を実行すると削除できます。

ssh-add -d IdentityFile

参考にさせていただいたもの

AI cloude3.7 sonnet

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?