メインで使用しているWindowsのPCから、Raspberry Pi OSへSSH接続するための手順です。
パスワードで認証する「パスワード認証」が簡単ですが、今回はセキュリティ高度が高い、「公開鍵認証」で接続できるまでです。
- 1. 公開鍵の作成(Windowsでの操作)
- 2. 公開鍵をRaspberry Pi へ移動(コピー)
- 3. 公開鍵の登録(Raspberry Pi OS での操作)
- 4. 公開鍵での接続確認(Windows での操作)
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)
が作成されているはずです。
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
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」となるので、これを削除して、別途ユーザーを作成。