Closed8

初めてのラズベリーパイ設定 〜購入 から SSH 接続〜

前提

  • SSH 接続を想定

購入した物

必須

  • Raspberry Pi 4 Model B/4GB
  • Raspberry Pi 4 Model B用ケース
  • microSD 32GB
    • 最低 16GB 必要らしい
  • Raspberry Pi用電源アダプター
    • ラズパイ側に On/Off スイッチが無いため、アダプタ側に電源スイッチ付きだと便利
  • ...

本人の環境次第

  • SD カードリーダー
  • ...

※ 親記事

https://zenn.dev/moo_moo_farm/scraps/a324ef90667e88

2. SSH 接続設定

ssh-agent の起動設定

ssh ファイルが存在するだけで、起動時に ssh-agent が起動する。

touch /Volumes/boot/ssh

WiFi の接続設定

wpa_supplicant.conf は、起動時に WiFi との接続設定を読み込み、自動接続してくれる。

touch /Volumes/boot/wpa_supplicant.conf
wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="${WiFi ルータのネットワーク名}"
    psk="${暗号化キー}"
}

参考 URL

設定手順

https://qiita.com/murs313/items/81757bf8bc74b6b76cdf

wpa_supplicant.conf とは?

https://wiki.archlinux.jp/index.php/Wpa_supplicant

3. SSH 接続

※ 初期ユーザ情報

  • user: pi
  • password: raspberry

方法1

ssh pi@raspberrypi.local

方法2: IP を直接指定

arp コマンドで IP を探す

ローカル IP である 192.168.xxx.xxx を目印にして探す。
ラズパイ起動前に確認しておけば探しやすい。

arp -a
ssh pi@${ローカルIP}

参考 URL

raspberrypi.local のホスト名が設定済みの理由

mac とラズパイ側の機能で、自動的に名前解決してくれてる。

https://www.indetail.co.jp/blog/170512/
### 3. SSH 接続: エラー対応

#### 起動したのに WiFi が飛ばない
##### 問題
arp コマンドで、ラズパイの IP が見つからない。
`FAT32` であることも確認した。

フォーマット方法は、以下の方法を使用したがダメだった。
- Raspberry Pi Imager
- mac のディスクユーティリティー

##### 解決
WiFi に繋がってなかっただけだった。
wpa_supplicant.conf を root ディレクトリに配置して、宅内の WiFi に自動接続させて解決した。
### 3. SSH 接続: エラー対応

#### SSH 接続が失敗
##### 問題
`ssh: connect to host 192.168.1.255 port 22: Permission denied`
ラズベリーパイ側の SSH 設定が、disabled になってる。。
ssh ファイルあれば良いのじゃないのか。。

##### 解決策
ssh ファイルの生成は、正常な手順で問題なし。
原因は、ラズパイがは WiFi に接続されてなくて、異なるサーバにアクセスしてただけだった。

4. セキュリティ設定

SSH: 公開鍵認証に変更

ローカル PC で鍵生成

cd ~/.ssh/

ssh-keygen -t rsa -b 4096 -f id_rsa_raspberry_pi

scp id_rsa_raspberry_pi.pub pi@raspberrypi.local:~/

MEMO

  • id_rsa_raspberry_pi は、好みの名前で良い
  • -f オプション自体使用せず、デフォルトに委任しても良い
  • ssh-keygen 実行時は全てリターンでも良い
  • ただし、セキュリティ高めたい場合は、各自で設定すべし

raspi で公開鍵を設定

ssh pi@raspberrypi.local

mkdir .ssh
chmod 700 .ssh/

cat id_rsa_raspberry_pi.pub >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

rm id_rsa_raspberry_pi.pub
exit

ローカル PC で config 設定

vim ~/.ssh/config
~/.ssh/config
Host raspberrypi.local
  User pi
  IdentityFile ~/.ssh/id_rsa_raspberry_pi

結果

以下のコマンドで raspi に接続できたら成功

ssh raspberrypi.local

好みのサーバ設定

欲しいライブラリある場合、インストールしておく。

ssh raspberrypi.local
sudo apt install vim

SSH: password ログインを無効化

sudo vim /etc/ssh/sshd_config
/etc/ssh/sshd_config
- #PasswordAuthentication yes
- #PermitEmptyPasswords no
+ PasswordAuthentication no
+ PermitEmptyPasswords no
sudo service ssh restart

WIfi: 平文のパスワードを変更

wpa_supplicant.conf の psk は、wpa_passphrase で一方向ハッシュ化後の文字列を使用している。
つまり、生の psk を wpa_passphrase でハッシュ化しても、文字列が複雑になる程度の効果しかない。
そのため、psk をハッシュ化させて保存する手間が面倒なので対応しない。

参考 URL

SSH

https://qiita.com/HeRo/items/c1c30d7267faeb304538

WiFi

https://qiita.com/rukihena/items/7c0087b56ccfbc05c793
このスクラップは2021/07/06にクローズされました
ログインするとコメントできます