はじめに
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アドレスに固定することをやってみます。
WiFiマークをクリックし、Adcanced Options→Edit Connections→Connection Information
IPv4のIP Address,Subnet Mask、Default Ruteをメモっておきましょう
WiFiマークをクリックし、Adcanced Options→Edit Connections→Edit Connections
→preconfigured IPv4 Settiongsを選択、Additional static adressをAdd
先程メモったIPv4のIP Address,Subnet Mask、Default Ruteを入力したら完了
一度再起動して、IPを再確認してみましょう。固定したIPが表示されれば成功です。
sudo rebootip a次に最大の危険:パスワードログイン
ラズパイの初期設定
ユーザー:pi
パスワード:raspberry実は世界中の攻撃ボットが24時間この組み合わせでログインを試しています。サーバー公開した瞬間から始まります。
”攻撃”とは、パスワードやユーザーIDを片っ端から総当りさせるようなことです。
インターネットに公開されたサーバーは、必ず攻撃されます。
つまりパスワードログインのまま公開すると「いつか」ではなく 必ず破られます。
鍵認証とは なぜパスワードログインは危険なのか
パスワードが「合言葉」なのに対して、鍵認証「物理的な鍵」の違いです
仕組み
SSH鍵には2つあります。
| 名前 | 置き場所 | 役割 |
|---|---|---|
| 公開鍵 | ラズベリーパイ(サーバー) | 鍵穴 |
| 秘密鍵 | 自分のPC | 鍵本体 |
ラズベリーパイ(サーバー)はこう動きます
- 接続してきた相手に「証明しろ」と要求
- 秘密鍵で暗号署名
- 公開鍵で検証
- 一致 → ログイン許可
秘密鍵はネットワークを一切流れない
だから盗まれません。(これがパスワードと決定的に違うポイントです)
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 sshSSH接続できない時のチェックリスト
sshがうまく行かないときは以下をチェックしてみてください。
・IPが変わっていないか
・ポート22が開いているか
・sshサービスが起動しているか
・公開鍵の配置場所
・権限(700/600)
まとめ
今回の作業で眼の前のラズパイが、
・固定住所を持ち
・本人確認あり
・遠隔可能な
本格的なサーバーになりつつあります。次はラズパイをインターネットからアクセスできる状態にしてみたいと思います。

コメント