Raspberry Piセットアップ(公開鍵認証編)Stretch版

この記事は最終更新日から 約3年が経過しているので情報が古い可能性があります。

Raspberry PiにUSBカメラを接続して、motionで 動体検知対応のカメラとして機能させるまでの備忘録
今回は公開鍵認証編

(ターミナルのログは所々Jessieの時のものを使っています…)

環境は
USBカメラとの相性で、OS「Raspbian」はちょっと古いですがStretch版を利用
macOS Monterey 12.1
すべてマックのターミナル.appを使っての操作です。

毎回パスワードを入力するのは疲れるので、公開鍵認証でssh接続できるようにします。

参考ページ
ツール・ラボ » Raspberry Piに公開鍵認証を使ってssh接続する

ここに書かれていることを、そのまま実行すればOKです。

と、これだけじゃ怒られるので簡単な説明を

以前の公開鍵と秘密鍵がある場合はそれを使いますので、新規の作成は必要ありません。所定の位置に移動しておいてください。(ホームの「.ssh」フォルダ内)

Macで公開鍵と秘密鍵を作成する

ターミナルを起動したら(入力するのは「」の中)
ssh-keygen -t rsa」と入力してリターンキー

Enter file in which to save the key
と聞かれるので、保存場所を確認してリターンキー

Enter passphrase
と聞かれるので、そのまま何も入力しないでリターンキー

Enter same passphrase again: と聞かれるので、そのままリターンキー

公開鍵と秘密鍵が生成されました。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/hogehoge/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/hogehoge/.ssh/id_rsa.
Your public key has been saved in /Users/hogehoge/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxx
The key's randomart image is:
+---[RSA 2048]----+
|  .+oo=o..       |
|..= .+=+o        |
|=+ o =oo=   .    |
|+oo ...o = o     |
| ..o  . M +     Y|
|  o  .       . ..|
|   .  +       *..|
|    o. o     ..+o|
|    .+. ...... .+|
+----[SHA256]-----+

ファイルを確認してみます。
公開鍵を保存した場所に移動します。(環境によって場所は違います。上記保存場所 has been saved in の後を参照してください)

例では/Users/hogehoge/.sshとします。
cd /Users/hogehoge/.ssh」と入力してリターンキー
「ls」と入力してリターンキー

ida_rsaとida_rsa.pubの2つのファイルがあればOKです。

公開鍵ファイルをRaspberry Piに転送する

公開鍵を保存した場所に移動します。(環境によって場所は違います。上記保存場所 has been saved in の後を参照してください)
ターミナルで「cd /Users/hogehoge/.ssh」と入力してリターンキー

転送する公開鍵は「id_rsa.pub」の方です。間違わないようにしてください。
id_rsaの方は秘密鍵になります。

転送は
「scp id_rsa.pub pi@Raspberry PiのIPアドレス:パス」という形式になります。

例の場合は192.168.0.123に固定しているので
scp id_rsa.pub pi@192.168.0.123:/home/pi/」と入力してリターンキー

pi@192.168.0.123’s password:
と聞かれたら、Raspberry Piのパスワードを入力してリターンキー

id_rsa.pub 100% 423 0.4KB/s 00:00

こんな感じなったら転送完了です。

Raspberry Pi側の設定

Macでターミナルを起動したら、
「ssh pi@固定したIPアドレス」

例の場合は
ssh pi@192.168.0.123」と入力してリターンキー

途中で、
Are you sure you want to continue connecting (yes/no)?
と聞かれたら、
yes」と入力してリターンキー

pi@192.168.0.123’s password:
と聞かれたら、パスワードを入力してリターンキー

pi@raspberrypi:~ $

となればRaspberry Piへのログイン完了です。

念のため、「cd」と入力してリターンキー

ls」と入力してリターンキー
転送されたid_rsa.pubがあることを確認してください。

pi@raspberrypi:~ $ ls
id_rsa.pub

.sshディレクトリの作成
mkdir .ssh」と入力してリターンキー

念のため、「ls -a」と入力してリターンキー
.sshがあることを確認してください。

id_rsa.pubの内容を.sshディレクトリ内のauthorized_keysファイルに書き出します。
cat id_rsa.pub >> .ssh/authorized_keys」と入力してリターンキー

パーミッションを変更します。
chmod 700 .ssh」と入力してリターンキー
chmod 600 .ssh/authorized_keys」と入力してリターンキー

id_rsa.pubを削除します。
rm id_rsa.pub」と入力してリターンキー

sshサーバの設定ファイルを編集
sudo nano /etc/ssh/sshd_config」と入力してリターンキー

ポート番号の変更
Port 22
を任意のものに変更

Raspberry Pi を公開するためのセキュア設定 | Raspberry Pi用ソケットサーバーフレームワーク「HAL」 | Feijoa.jpによると、49152〜65535の数字が使えそうな感じ

例では、55555にしてみます。
Port 55555

rootログインを禁止。
PermitRootLogin no

公開鍵認証を有効にする
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

パスワード認証を無効にする
PasswordAuthentication no

頭に#がある場合は、削除するのを忘れずに

問題なければ、「controlキー + o
File Name to Writeと下に表示されたらリターンキー
controlキー + x」で編集を終了します。

sshサーバを再起動する
sudo /etc/init.d/ssh restart」と入力してリターンキー

pi@raspberrypi:~ $ sudo /etc/init.d/ssh restart
[ ok ] Restarting ssh (via systemctl): ssh.service.

接続できるか確認

Raspberry Piにログインした状態で
一旦「exit」と入力してリターンキーで抜けます。

pi@raspberrypi:~ $ exit

ターミナルで(入力するのは「」の中)

念のため
cd」と入力してリターンキー

形式は
ssh -i .ssh/id_rsa -p ポート番号 pi@固定したIPアドレス

ssh -i .ssh/id_rsa -p 55555 pi@192.168.0.123」と入力してリターンキー

$ ssh -i .ssh/id_rsa -p 55555 pi@192.168.0.123

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: 前回ログイン日時
pi@raspberrypi:~ $ exit

となればOK

exit」と入力してリターンキー
抜けます。

もっと簡単にログインするために

ここからは、Mac側のローカルな環境での作業です。

pi@raspberrypi:~ $となったままの場合は、「exit」と入力してリターンキーで抜けてください。

念のため、「cd」と入力してリターンキー

sudo nano .ssh/config」と入力してリターンキー
管理者パスワードを要求されたら入力してリターンキー

Host 接続するときの名前
HostName Raspberry PiのIPアドレス
User pi
Port ポート番号
IdentityFile 秘密鍵の場所

Host raspi
	HostName 192.168.0.123
	User pi
	Port 55555
	IdentityFile ~/.ssh/id_rsa

を書き込みます。

問題なければ、「controlキー + o
File Name to Writeと下に表示されたらリターンキー
controlキー + x」で編集を終了します。

これで、
ターミナルで「ssh raspi」と入力してリターンキーで、Raspberry Piに接続できるようになります。

$ ssh raspi

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: 前回のログイン日時

補足
Raspberry Piの終了について
sudo shutdown -h now」と入力してリターンキー

緑色のランプが何度か点滅して、赤色のランプのみの点灯になれば、コンセントから抜いて大丈夫です。

コメント

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