RaspberryPi4(ラズベリーパイ4)をMacのSSHから接続して操作する方法について紹介します。
SSH接続とは
SSHとは、公開鍵暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコルです。
クライアントとリモートホスト側で以下のように事前準備と接続時のやり取りが行われます。
- 事前準備
- ①ユーザーがクライアント端末で鍵ペア(公開鍵と秘密鍵)を作成
- ②ユーザーが作成した公開鍵をリモートホストの「~/.ssh/authorized_keys」に登録
- SSH接続時
- ①クライアント端末から接続先サーバーに「ユーザーの公開鍵」を利用できるか問合せ
- ②リモートホストから「利用できる」と回答があれば、クライアントは「ユーザーの秘密鍵」で署名を作成
- ③クライアントはデータと署名を接続先サーバーに送信
- ④リモートホストは、受信した「署名」と登録されている「ユーザーの公開鍵」を検証し、問題なければ接続を許可
リモートホスト・・・ラズベリーパイ(遠隔操作される側)
クライアント端末・・・RaspberryPiを遠隔操作する側のPC
参考
SSH接続の基礎知識を習得したい方は以下の記事もご参考ください。
【事前準備1】ラズベリーパイでSSH接続を有効化
以下のコマンドを実行します。
$ sudo raspi-config
設定画面が表示されます。[5 Interfacig Options] > [P2 SSH] > [Yes] をSSHを有効化します。
PC側のターミナルで以下のコマンドを実行します。
$ ssh [ラズパイのユーザー名]@[ラズベリーパイのIPアドレス]
パスワード認証でSSH接続できれば成功です。
【実行例】
$ ssh pi@192.168.1.3 The authenticity of host '192.168.11.44 (192.168.1.3)' can't be established. ED25519 key fingerprint is SHA256:XXXXXXXXXXXX/XXXXXXXXXXXX. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes ← yesと入力してEnterキー Warning: Permanently added '192.168.1.3' (ED25519) to the list of known hosts. pi@192.168.1.3's password: ← ラズベリーパイのログインパスワードを入力してEnterキー Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Fri Dec 8 12:55:00 2023 pi@raspberrypi:~ $ ← ラズベリーパイを操作できるようになる
【事前準備2】鍵ペアの作成と登録(Macの場合)
クライアント側のPCで鍵ペア(公開鍵・秘密鍵)を作成し、登録します。
クライアント側がMacの場合、Macのターミナルでssh-keygenコマンドを実行し、鍵ペアを作成します。
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/XXXXXXXX/.ssh/id_rsa): ← 何も入力せずにEnterキー Enter passphrase (empty for no passphrase): ← 設定するパスワードを入力してEnterキー Enter same passphrase again: ← 設定したパスワードを再度入力してEnterキー Your identification has been saved in /Users/XXXXXXXX/.ssh/id_rsa Your public key has been saved in /Users/XXXXXXXX/.ssh/id_rsa.pub The key fingerprint is: SHA256:XXXXXXX The key's randomart image is: +---[RSA 3072]----+ | | | | | . | | . . . | | S +o . . | | o +ooB *.E| | ++o*=B O+| | =oo*+o*.B| | ++oo+*+.=*| +----[SHA256]-----+
「/Users/[ユーザー名]/.ssh」以下に鍵ペア(公開鍵・秘密鍵)が作成されます。
公開鍵・・・id_rsa.pub
秘密鍵・・・id_rsa
Macのターミナルで「ssh-copy-id [ラズパイのユーザー名]@[ラズベリーパイのIPアドレス]」を実行し、公開鍵(id_rsa.pub)をSSH接続でラズベリーパイに送信して登録します。
(ラズベリーパイの~/.sshディレクトリ内のauthorized_keysに登録されます)
$ ssh-copy-id pi@192.168.1.3 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/XXXXXX/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys pi@192.168.1.3's password: ← ラズベリーパイのログインパスワードを入力してEnterキー Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'pi@192.168.1.3'" and check to make sure that only the key(s) you wanted were added.
上記実行例のようなメッセージが表示されたら、公開鍵が無事にラズベリーパイ側に登録されました。
ラズベリーパイ側でSSH接続の設定変更
次にラズベリーパイ側でSSH接続の設定を変更します。
SSH接続の設定は「/etc/ssh/sshd_config」ファイルを編集して行います。
「sudo geany /etc/ssh/sshd_config」など管理者権限でファイルを開いて以下のように編集します。
【変更箇所】
(略) # Port 22 Port 28987 ← 追加(ポート番号をデフォルトの22番から変更する。0番ポートから65535番までから選ぶ) (略) #PermitRootLogin prohibit-password PermitRootLogin no ← 追加(rootログインを無効化) (略) #PasswordAuthentication yes PasswordAuthentication no ← 追加(パスワード認証を無効化)
【検証】MacからラズベリーパイにSSH接続
Mac側のターミナルで「ssh -i ~/.ssh/id_rsa -p ポート番号 [ラズパイのユーザー名]@[ラズパイのIPアドレス]」を実行すれば、ラズベリーパイへログインできます。
ssh -i ~/.ssh/id_rsa -p ポート番号 panzerpi@192.168.1.3 Enter passphrase for key '/Users/XXXXXXXXXX/.ssh/id_rsa': ← 設定した秘密鍵のパスワードを入力してEnterキー Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Thu Dec 28 08:37:55 2023 from 192.168.1.2
コメント