ゴール
Macのターミナルを使用して、Linuxサーバー(Raspberry Pi 5, Ubuntu 24.04 LTS)にSSHで安全にログインできるようになることを目指します。具体的には、SSH接続時に発生する可能性のあるホスト鍵の警告メッセージに対応し、正常に接続を確立する方法を習得します。
実行環境
- クライアント端末
- MacBook Air M3
- macOS Sonoma 14.6.1
- Linuxサーバー
- Raspberry Pi 5
- Ubuntu 24.04 LTS
mac のターミナルからsshでログインする
ssh <ipアドレス> -l <ログインユーザー>
ログイン出来ない:SSH接続先のサーバーのホスト鍵が以前接続したときと異なる場合への対処方法
ログインコマンド実行時、SSH接続先のサーバーのホスト鍵が以前接続したときと異なる場合下記メッセージが出力されます。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
[*ホスト鍵*]
Please contact your system administrator.
Add correct host key in /Users/[ローカルユーザー]/.ssh/known_hosts to get rid of this message.
Offending ED25519 key in /Users/[ローカルユーザー]/.ssh/known_hosts:10
Host key for <IPアドレス> has changed and you have requested strict checking.
Host key verification failed.
[24-08-09:コメント欄での指摘を受けて追記]
この警告は、なりすましや中間者攻撃(Man-in-the-Middle attack)の可能性があることを示しています。接続先のサーバーが正当なものであることを確認し、ホスト鍵の変更が意図されたものであり、安全であることが確認できた場合にのみ次の対処に進んで下さい。
対処:SSHクライアントの known_hosts ファイルから指定したIPアドレスに対応するホスト鍵を削除する
SSHクライアントはリモートホストのホスト鍵を ~/.ssh/known_hosts ファイルに保存しています。下記コマンドを実行することで中身を確認できます。
cat /Users/[ローカルユーザー]/.ssh/known_hosts
下記コマンドを実行することで、指定されたIPアドレスに対応するエントリ(ホスト鍵)をそのファイルから削除することができます。
ssh-keygen -R <IPアドレス>
成功すること下記のようなメッセージが出力されます
# Host <IPアドレス> found: line [known_hostsの行番号]
/Users/[ローカルユーザー]/.ssh/known_hosts updated.
Original contents retained as /Users/[ローカルユーザー]/.ssh/known_hosts.old
再度、sshでログインしようとすると下記が出力されるので「yes」を入力して下さい。
The authenticity of host '<IPアドレス>' can't be established.
ED25519 key fingerprint is [*ホスト鍵*]
This host key is known by the following other names/addresses:
~/.ssh/known_hosts:1: <過去にsshでログインしたことのあるIPアドレス_1>
~/.ssh/known_hosts:4: <過去にsshでログインしたことのあるIPアドレス_2>
~/.ssh/known_hosts:7: <過去にsshでログインしたことのあるIPアドレス_3>
~/.ssh/known_hosts:8: <過去にsshでログインしたことのあるIPアドレス_4>
~/.ssh/known_hosts:9: <過去にsshでログインしたことのあるIPアドレス_・・>
Are you sure you want to continue connecting (yes/no/[fingerprint])?
ログインが始まります。
Warning: Permanently added '<IPアドレス>' (ED25519) to the list of known hosts.
<ipアドレス> @<IPアドレス>'s password:
おわりに
この記事では、MacのターミナルからRaspberry Pi 5にSSHでログインする手順と、ホスト鍵が変更された場合の対処方法について説明しました。SSHのホスト鍵は、リモートサーバーの真正性を確認するための重要なセキュリティ機能です。鍵が変わった場合の警告メッセージに適切に対応することで、セキュリティを維持しつつ、安全にサーバーにアクセスすることができます。
SSHはリモート接続において非常に便利で強力なツールですが、同時にセキュリティに関する理解が求められます。今後も、SSHを利用する際には、ホスト鍵や接続先の安全性を確認しながら利用していきましょう。