Raspberry Piを動かそう④

RaspberryPi

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に対応する古い登録を整理するため、ファイルを手作業で編集する必要はありません。


コメント

タイトルとURLをコピーしました