SSH接続をする
次にWindowsPCからRaspberryPiへSSH接続をします。
SSH を有効にすべき理由としては、Raspberry Pi を机から動かさずに操作できます。そのため、毎回モニタ・キーボードをつなぐ必要はありませんので、 作業効率が大幅に向上するからです。
🖥️ Windows からの SSH 接続手順(PowerShell)
① PowerShell を開く
スタートメニュー → PowerShell を起動。(Tera TermでもOKです。)
② 以下のコマンドを入力
ssh pi@raspberrypi3.local
ユーザ名@ホスト名.local
③ 初回接続時に「接続しますか?」と聞かれる
yes と入力して Enter。
④ パスワードを入力
OSインストール時に設定した ユーザーパスワード を入力。
※入力しても画面に何も表示されませんが、正常です。
⑤ 接続成功すると、以下のような表示になります
pi@raspberrypi3:~ $
これが出れば SSH 接続成功です。
🔧 もし接続できない場合のチェックポイント
① Raspberry Pi の IP を確認する
Pi の画面で以下を実行:
hostname -I
例: 192.168.1.23
その場合は Windows から:
ssh pi@192.168.1.23
で接続できます。
② Raspberry Pi のユーザー名は本当に “pi” ですか?
OSインストール時に ユーザー名を pi 以外にした場合、 SSH のユーザー名もその名前になります。
→ ユーザー名が違うと必ず Permission denied になります。
③ “raspberrypi3.local” が名前解決できていない可能性
Windows は .local の名前解決が不安定なことがあります。
その場合は IPアドレスで接続すると一発で入れます。
Raspberry Pi 側で IP を確認:
Pi の画面でターミナルを開き:
hostname -I
例: 192.168.1.23
Windows から:
ssh pi@192.168.1.23
→ これで入れることが非常に多いです。

【Tips】OSを入れ替えた時のSSH接続
microSDカードを差し替えることによってOSを入れ替えることができますが、入れ替え後の初回のSSH接続する際の注意事項です。
PS C:\WINDOWS\system32> ssh pi@192.168.0.XXX
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
SHA256:5IF3GSuP4TbGG/SxpW8vvTX5EodVYJhLVp5bgsgjyj4.
Please contact your system administrator.
Add correct host key in C:\\Users\\user/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in C:\\Users\\user/.ssh/known_hosts:9
Host key for 192.168.0.XXX has changed and you have requested strict checking.
Host key verification failed.
PS C:\WINDOWS\system32>
SSH接続を試みるとエラーが出て接続できません。
今回のエラーの意味
重要なのは、この部分です。
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
Offending ECDSA key in C:\Users\user/.ssh/known_hosts:9
Host key for 192.168.0.XXX has changed
Windows側には以前接続した 192.168.0.XXX の鍵が保存されていますが、現在応答している機器は別の鍵を提示しています。
考えられる原因は次のとおりです。
- OSを再インストールしたため、SSH鍵が作り直された ←今回はこれ!
- 別の機器に
192.168.0.XXX が割り当てられた - SSHホスト鍵が何らかの理由で変更された
接続先を確認
まず 192.168.0.XXX が目的の機器のIPアドレスか を確認します。
接続先の機器でターミナルを開けるなら、次のコマンドを実行してください。
hostname
hostname -I
これで機器名とIPアドレスを確認できます。
接続先が正しいと確認できたら
OSを再インストールしたなど、鍵が変わった理由が明確であれば、WindowsのPowerShellで古い鍵を削除できます。
ssh-keygen -R 192.168.0.XXX
その後、再接続します。
ssh pi@192.168.0.XXX
新しいホスト鍵の確認が表示されたら、接続先と鍵の正当性を確認してから yes と入力します。
なお、今回のエラーでは known_hosts の9行目にある古いECDSA鍵が問題になっています。ssh-keygen -R は対象IPに対応する古い登録を整理するため、ファイルを手作業で編集する必要はありません。


コメント