Raspberry Pi を自宅サーバー化する手順固定IPとSSH鍵認証を初心者向けに完全解説(外部アクセスの準備)

目次

はじめに

Raspberry Pi を外出先から操作したいのに
・IPアドレスが毎回変わって接続できない
・SSH接続が不安定
・セキュリティが怖い

この記事では、ラズパイを「安全に外からアクセスできるサーバー」にするための最初の設定、
固定IP設定とSSH鍵認証の導入方法を手順付きで解説します。

Raspberry Pi をサーバー化すると何ができる?

普通のPCとサーバーの違いは性能ではありません。役割です。

機器役割
PC人が使う
サーバー他のコンピュータが使う

つまり、ラズパイをサーバーにするとは

「人ではなく、ネットワークから常時アクセスされる機械にする」

「スマホから接続できる = 世界中のコンピュータから接続可能」 ということです。
だからセキュリティ設定が必要になります。

なぜラズパイはIPを固定しないと接続できないのか

ネットワーク上では名前では通信できません。必ず「住所」が必要です。それが IPアドレス です。
 例:192.168.1.15
これはラズパイの「家の住所」です。

なぜ固定しないといけないのか?

家庭のWi-Fiルーターには DHCP という機能があります。これは

接続してきた機器に「空いている番号」を自動で割り当てる仕組み

です。つまりラズパイのIPはルーターに接続するたびに毎回変わります。

起動回IP
1回目192.168.1.15
2回目192.168.1.8
3回目192.168.1.22

これが起きると何が困るか。外から接続する側は「192.168.1.15 にサーバーがある」と信じてアクセスします。
しかしラズパイのIPが変わるとサーバーが突然消えてしまします。
IPの固定は必須です。

IPアドレスを固定する

デスクトップ画面から固定することが可能です。固定IPは”static adress”と表現されます。
ここでは、現在のIPアドレスに固定することをやってみます。

STEP
現在のIPアドレスと接続状態を確認する

WiFiマークをクリックし、Adcanced Options→Edit Connections→Connection Information
IPv4のIP Address,Subnet Mask、Default Ruteをメモっておきましょう

STEP
IPアドレスを固定する

WiFiマークをクリックし、Adcanced Options→Edit Connections→Edit Connections
→preconfigured IPv4 Settiongsを選択、Additional static adressをAdd

先程メモったIPv4のIP Address,Subnet Mask、Default Ruteを入力したら完了

一度再起動して、IPを再確認してみましょう。固定したIPが表示されれば成功です。

sudo reboot
ip a

次に最大の危険:パスワードログイン

ラズパイの初期設定

ユーザー:pi
パスワード:raspberry

実は世界中の攻撃ボットが24時間この組み合わせでログインを試しています。サーバー公開した瞬間から始まります。
”攻撃”とは、パスワードやユーザーIDを片っ端から総当りさせるようなことです。

インターネットに公開されたサーバーは、必ず攻撃されます。
つまりパスワードログインのまま公開すると「いつか」ではなく 必ず破られます。

鍵認証とは なぜパスワードログインは危険なのか

パスワードが「合言葉」なのに対して、鍵認証「物理的な鍵」の違いです

仕組み

SSH鍵には2つあります。

名前置き場所役割
公開鍵ラズベリーパイ(サーバー)鍵穴
秘密鍵自分のPC鍵本体

ラズベリーパイ(サーバー)はこう動きます

  1. 接続してきた相手に「証明しろ」と要求
  2. 秘密鍵で暗号署名
  3. 公開鍵で検証
  4. 一致 → ログイン許可

秘密鍵はネットワークを一切流れない

だから盗まれません。(これがパスワードと決定的に違うポイントです)

PCで鍵を作る

Windows / Mac / Linux 共通です。
PCのPowerShellで以下のコマンドを打ってください。

ssh-keygen
いろいろ聞かれますが、すべてEnterでOKです。ここで秘密鍵と公開鍵ができます。
~/.ssh/id_rsa      ← 秘密鍵(絶対に配布禁止)
~/.ssh/id_rsa.pub  ← 公開鍵(サーバーに渡す)

ラズパイへ鍵を登録

そのまま、PCからssh接続でラズベリーパイに公開鍵を配置します
piという名前でIPアドレスが192.168.1.50のラズベリーパイを例しています。

ssh-copy-id pi@192.168.1.50

まれにエラーがでます。その場合は以下を試してみてください

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh pi@192.168.1.50 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

うまくうごいたら、一旦、PoweSshellをとじて、開き直して確認してください。

ssh pi@192.168.1.50

パスワードを聞かれずログインできたら、鍵ログイン成功です。

パスワードログインを無効化(最重要)

これをやって初めて安全になります。ラズパイでの作業です。

sudo nano /etc/ssh/sshd_config

以下の記述をさがしてください。yes→noに変更してください。

PasswordAuthentication yes

この設定を有効化します

sudo systemctl restart ssh

SSH接続できない時のチェックリスト

sshがうまく行かないときは以下をチェックしてみてください。
・IPが変わっていないか
・ポート22が開いているか
・sshサービスが起動しているか
・公開鍵の配置場所
・権限(700/600)

まとめ

今回の作業で眼の前のラズパイが、
 ・固定住所を持ち
 ・本人確認あり
 ・遠隔可能な
本格的なサーバーになりつつあります。次はラズパイをインターネットからアクセスできる状態にしてみたいと思います。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次