ラズベリーパイにDebianをインストールしてSSH接続するまで【やること・必要なもの】の絵文字

ラズベリーパイにDebianをインストールしてSSH接続するまで【やること・必要なもの】

2023-02-09

2023-02-09

はじめに

こんにちは、こふです。

Raspberry Pi に Debain をインストールして SSH 接続しました。

それにあたり必要だったもの・やったことをまとめます。

具体的なコマンドや設定の変更まで、できるだけ詳細に解説します。

必要なもの

持っていない場合は購入する必要があります。

  • Raspberry Pi4 ModelB 4GB
    • どのモデルでも問題ありませんが、機種により端子が異なるのでケーブル準備に際しては注意してください
    • このモデルなら、給電は USB-C で、ディスプレイ接続は Mini HDMI です
  • USB 充電器、ケーブル
  • マイクロ SD カード
  • 有線 LANルータスイッチングハブから出す)
    • LAN ケーブルを用意して、接続できるようにします
    • 無線 LAN 対応の Raspberry Pi有線 LAN は面倒だと思いがちです
    • しかし、設定に SSID と PW 入力が必要で面倒なので、ひとまず有線 LAN をおすすめします
  • ディスプレイ・モニター(HDMI 接続など)
    • 大きさは何でも良いが、大きいほうが良いです
    • ターミナルで操作するため
    • Raspberry Pi からの出力はミニ HDMI か通常の HDMI です
    • ミニ HDMI の場合、変換アダプタなど用意必要です
  • OS インストール用の PC(OS の指定はない)

手順

  • インストール
  • Raspberry Pi 操作
  • クライアント操作

を行います。

手順 1:インストール

手順 2:Raspberry Pi 操作

Raspberry Pi で Debian をデスクトップ起動する

単に電源入れるだけで起動します

openssh-server のインストール・起動

  • 以下の記事が分かりやすいですが、抜粋すると以下のようになります
  • Enable SSH Server on Debian 11
  • また、初回起動時はrootユーザーなのでsudoは要らないです(任意)
  • sudo apt update && sudo apt upgrade
  • sudo apt install openssh-server -y
  • systemctlで起動しstatus確認します
  • sudo systemctl start sshd
  • sudo systemctl status sshd
  • こうなれば(Activeになれば)OK です
1● ssh.service - OpenBSD Secure Shell server 2 Loaded: loaded (/lib/systemd/system/ssh.service 3; enabled; preset: enabled) 4 Active: active (running) since Mon YYYY-MM-DD HH:MM:SS UTC; X week X days ago 5TriggeredBy: ● ssh.socket 6 Docs: man:sshd(8)

ufw のインストール・起動・設定

  • ファイアウォールの設定です。
  • 以下の記事を同様に抜粋します
  • How To Set Up a Firewall with UFW on Debian 11 | DigitalOcean
  • sudo apt update && sudo apt upgrade
  • sudo apt install ufw -y
    • インストールします
  • sudo ufw default deny incoming
    • 安全のため入ってくるパケットを全てブロックします
  • sudo ufw default allow outgoing
    • 現状は出ていくパケットは制限しません
  • sudo ufw allow 22
    • SSHTCPの 22 番ポートを使うことが一般的なので開放します
  • sudo ufw enable
1~/ sudo ufw status verbose 2Status: active 3Default: deny (incoming), allow (outgoing), disabled (routed) 4New profiles: skip 5 6To Action From 7-- ------ ---- 822/tcp ALLOW IN Anywhere 922 ALLOW IN Anywhere 1022/tcp (v6) ALLOW IN Anywhere (v6) 1122 (v6) ALLOW IN Anywhere (v6)

sshd の設定

  • これは公開鍵での SSH が完了してから行っても問題ありません
  • ユーザ名、パスワードでログインするのは良くないので、無効化して公開鍵の認証とします
    • 例として、友人が家に来て PC でssh root@IPしてパスワードがadminだった場合に Raspberry Pi に入れてしまうからです
    • あなたの PC を勝手に触られる想定はしてません・・・
1PasswordAuthentication no 2PubkeyAuthentication yes

その他にも

手順 3:クライアント操作

  • 公開鍵・秘密鍵を作成する
    • ssh-keygen -t rsaなどで作成します、暗号方式は適宜変えてください
    • また、保存先のパスは~/.ssh/id_rsaと仮定します
    • パスワード有りにしてください
  • Raspberry Pi に公開鍵をコピーする
    • scp ~/.ssh/id_rsa.pub root@IP:~/
  • Raspberry Pi で操作(再び)
    • mv ~/id_rsa.pub ~/.ssh/authorized_keys
    • rootでない場合、scpでは権限不足で書き込めないはずなのでここでmvします
  • SSH する
    • ssh -vT i- ~/.ssh/id_rsa.pub root@IP
    • これで入れます
  • SSH が楽なように設定する
    • ssh hogeで SSH できるようにします
~/.ssh/config
1Host hoge 2 HostName IPアドレス 3 IdentityFile ~/.ssh/公開鍵のパス 4 User root 5 Port 22 6 TCPKeepAlive yes 7 UserKnownHostsFile /dev/null 8 PreferredAuthentications publickey
  • パスワード入力を省略する
    • ssh-add ~/.ssh/省略したい秘密鍵のパスをします

Raspberry Pi OS だと実はもっと楽・・・

Raspberry Pi OS の場合 Raspberry Pi からrootでないユーザーの、PORT 解放、公開鍵の配置が GUI で書き込み時に可能で、非常に楽だと思います。

Raspberry Pi OS でない Debian だと手間が増えますが、現実はこれが普通だと思うので我慢です。

OS 書き込みを工夫することで設定ファイルの上書き・公開鍵の配置ができるのなら問題ないですが・・・

おわりに

これでできることが増えますし、何かと勉強になります。




共有する