WindowsからRaspberry Pi OSへのSSH接続

メインで使用しているWindowsのPCから、Raspberry Pi OSへSSH接続するための手順です。

パスワードで認証する「パスワード認証」が簡単ですが、今回はセキュリティ高度が高い、「公開鍵認証」で接続できるまでです。

 

 

1. 公開鍵の作成(Windowsでの操作)

  WindowsPCにて、コマンドプロンプトにて以下のコマンドを実行します。

ssh-keygen -t rsa -b 4096

 

  しばらくすると、「Enter file in which to save the key ***」と聞かれます。

  鍵ファイルの生成場所です。指定がなければEnterで次へ。

 

  しばらくすると、「Enter passphrase (empty for no passphrase):」と聞かれます。

  パスフレーズ(パスワードのようなもの)を聞かれています。

  入力します(2回)。入力した内容は忘れないように。

  「.ssh」フォルダに

  ・公開鍵(id_rsa.pub)

  ・秘密鍵(id_rsa

  が作成されているはずです。

 

2. 公開鍵をRaspberry Pi へ移動(コピー)

  いろいろな方法があるとは思いますが、今回はSSHで送信します。

  

  まず、Raspberry Pi OS 側のSSHが有効になっているか確認します。

  「Raspberry Pi no設定」を開き、「インターフェース」タブの「SSH」が有効になっているかを確認します。

  Raspberry Pi OS のSSHが有効になっている場合、Windowsで実行した以下のコマンドが成功します。(パスワードが聞かれます)

ssh (ログインするユーザー名)@(Raspberry Pi OS のIPアドレス)

 

  Raspberry Pi OS にて、公開鍵を受けとるフォルダを作っておきます。

  作成場所は、「/home/(ユーザー名)」。フォルダ名は「.ssh」としておきます。

  ※ユーザー名:Raspberry Pi OS のユーザー名

 

  Windows側で以下のコマンドを実行、Raspberry Pi OS に送ります。

scp (公開鍵の格納パス(.sshフォルダ)のフルパス)/id_rsa.pub (ユーザー名)@(IPアドレス):/home/(ユーザー名)/.ssh

  ※ユーザー名:Raspberry Pi OS のユーザー名

   IPアドレスRaspberry Pi OS のIPアドレス

   

3. 公開鍵の登録(Raspberry Pi OS での操作)

  Raspberry Pi OS にて、公開鍵を登録します。

  「LXTerminal」にて、以下のコマンドを実行します。

cat /home/(ユーザー名)/.ssh/id_rsa.pub >> /home/(ユーザー名)/.ssh/authorized_keys

  ※ユーザー名:Raspberry Pi OS のユーザー名 

 

  続けて、「authorized_keys」のパーミッションを変更します。

chmod 600 /home/(ユーザー名)/.ssh/authorized_keys

 

  「ssh」フォルダのパーミッションを変更します。

chmod 700 /home/(ユーザー名)/.ssh

 

  公開鍵ファイルを削除します。

rm /home/(ユーザー名)/.ssh/id_rsa.pub 

 

4. 公開鍵での接続確認(Windows での操作)

  以下コマンドにて、鍵認証を確認します。

  「id_rsa.pub」ではなく、「id_rsa」です。秘密鍵です。

SSH -i (秘密鍵の格納パス(.sshフォルダ)のフルパス)/id_rsa (ユーザー名)@(IPアドレス)

  ※ユーザー名:Raspberry Pi OS のユーザー名

   IPアドレスRaspberry Pi OS のIPアドレス

 

  「Enter passphrase for key '((秘密鍵の格納パス(.sshフォルダ)のフルパス)/id_rsa)':」と聞かれます。

  聞かれているのはパスワードではなく、パスフレーズです。(公開鍵を作成する際に入力したもの)

  ここまで正しく設定できていると、「(ユーザー名)@raspberrypi:~ $」と表示されます。

  終了する際は「exit」を入力してやると、通常のコマンドプロンプトに戻ります。

 

いかがだったでしょうか。自分がはまってしまったのは以下です。

  ・Raspberry Pi OS に作成するフォルダを「ssh」をしていた。正しくは「.ssh

  ・途中でフォルダ名を「.ssh」に変えてもうまくいかず。一度間違ったフォルダ「ssh」を削除して再実行。

 

なお、セキュリティの観点から、以下の内容も実行しておいたほうがよさそうです。手順については、今回は触れません。

  ・SSHのポート番号を変更する(変更した場合、SSH系のコマンドで「-p (変更後のポート番号)」を指定する必要があります)

  ・Raspberry Pi OS のユーザー名を変更する。初期設定では「pi」となるので、これを削除して、別途ユーザーを作成。

 

Windowsからの接続でしたが、macOSなどでも同様と思います。