つくって楽しい!ラボ

小さな「できた!」を、ゆっくり積み重ねていくモノづくりブログ。

【初心者向け】Raspberry Piを安全に遠隔操作する!! SSHのセキュリティ対策(ポート変更+公開鍵認証)

 

 

Raspberry Pi(ラズベリーパイ)の最大の魅力の一つは、やはりネットワーク連携ですよね。 センサーの値をネット経由で飛ばすIoT化や、以前の記事でも紹介したファイルサーバー構築、スマートホーム化など、ラズパイが1台あるだけで夢が広がります。

しかし、ネットワークに繋がるということは、外からの「攻撃」にさらされるリスクもゼロではありません。 今回は、遠隔操作(SSH)を安全に行うために、初心者がまずやっておくべき最低限のセキュリティ対策を2つ紹介します。

Raspberry Pi × ネットワークの強み

Raspberry Piの強みは、やはりネットワーク連携です。

  • IoTデバイス化
  • ファイルサーバ構築
  • スマートホーム化
  • 家電の遠隔操作

など、「小さなサーバ」としてかなり幅広いことができます。

その中でもよく使うのが
👉 SSH(別PCから操作)
👉 VNC(画面操作)

今回はこの中でも、SSHのセキュリティ強化にフォーカスします。

SSHポート番号を「22」から変更しよう

なぜポート番号を変えるのか?

家の住所(IPアドレス)がわかっても、玄関のドアがどこにあるか分からなければ、泥棒は入りにくいですよね。

SSHのデフォルト設定では、ポート番号は「22」と決まっています。これは世界共通のルールなので、悪意のあるプログラムは手当たり次第に「22番ポート」を叩いて侵入を試みます。 ここを自分だけの番号に変えるだけで、「不特定多数からの機械的な攻撃」を大幅に減らすことができるんです。

設定手順

設定ファイルの書き換えは少し緊張しますが、一歩ずつ進めれば大丈夫です。

  1. ラズパイのターミナルで設定ファイルを開きます。

    sudo nano /etc/ssh/sshd_config
    
  2. #Port 22 という行を探します(「#」は無効化を意味します)。

  3. 「#」を消して、番号を「49152〜65535」あたりの好きな番号に変えます(例:Port 54321)。

  4. 保存(Ctrl+O → Enter)して終了(Ctrl+X)。

  5. SSHを再起動して設定を反映させます。

    sudo systemctl restart ssh
    

注意!:次回以降、SSH接続するときは「変更したポート番号」を指定するのを忘れないでくださいね。

「合鍵」でログイン!SSH公開鍵認証の設定

SSH公開鍵認証とは?

「パスワードを入力してログイン」する代わりに、「秘密鍵(自分だけが持つ鍵)」と「公開鍵(ラズパイに渡しておく鍵)」のペアを使ってログインする方法です。

メリット

  • 突破がほぼ不可能: パスワードのように推測されることがありません。

  • 入力が楽: 一度設定すれば、長いパスワードを毎回打つ手間が省けます(設定次第でパスワードなしログインも可能)。

設定手順(Windows PCから接続する場合)

  1. 鍵ペアの作成
    PC側のターミナル/コマンドプロンプトで下記コマンドを実行

    ssh-keygen -t ed25519
    

    鍵ペアの保存先とパスワードの設定を求められます。
    鍵ペアの保存先はデフォルトのままで進めるとC:\Users\ユーザ名/.sshに「id_ed25519」「id_ed25519.pub」が保存されます。

  2. ラズパイに鍵を渡す
    作成された id_ed25519.pub(公開鍵)の中身をコピーして、ラズパイ側の .ssh/authorized_keys というファイルに追記します。
    いくつかラズパイに鍵を移す方法(SDカード、Sambaなど)はありますが、ここではSSHで送信します。
    先にラズパイ側のホームディレクトリ直下に.sshフォルダを作成します。
    ラズパイのターミナルで以下コマンドを実行
    mkdir ~∼/.ssh
    次にPC側(windows)でcdコマンドで公開鍵があるファイル(C:\Users\ユーザ名/.ssh)に入ります。

    cd C:\Users\ユーザ名/.ssh

    PC側でscpコマンドで公開鍵をラズパイに送信します。

    scp -p id_ed25519.pub [ラズパイユーザ名]@[ラズパイIPアドレス]:[ラズパイ保存先(例:/home/ユーザ名/.ssh]
    

    ラズパイ側で下記コマンドを実行します。

    cd ~/.ssh/
    cat id_ed25519.pub >> authorized_keys
    chmod 600 authorized_keys
    

  3. 公開鍵認証での接続を確認
    PC側で下記コマンドを実行し、公開が気認証でSSH接続をする。
    ssh [ラズパイユーザ名]@[ラズパイのIPアドレス] -p [ポート番号]
    

    ラズパイのユーザ名が表示されれば成功です。

  4. 認証設定の保存
    上記1~3により公開鍵認証でのSSH接続は完了していますが、接続の度に下記コマンドを入力するのは面倒です。
    ssh [ラズパイユーザ名]@[ラズパイのIPアドレス] -p [ポート番号]
    そこで、.sshフォルダにconfigファイルを作る事で、下記短いコマンドでSSH接続が出来るようになります。
    ssh [ホスト名]
    PC側で下記のようなファイルをメモ帳で作成し、「config」という名前で"C:\Users\[Windowsのユーザ名]\.ssh"に保存。保存後に名前の変更で.txtを削除します。


    ※ホスト名は任意でOKです。

  5. 認証設定の保存後の接続確認
    PC側で下記コマンドを実行し、公開鍵認証のパスワードを入力します。
    ssh [ホスト名]
    ラズパイのユーザ名が表示されれば成功です。

まとめ:安心してモノづくりを楽しむために

「セキュリティ」と聞くと難しそうに感じますが、この2つを行うだけでラズパイの安全性は格段にアップします。

せっかく作った便利なツールが、知らない誰かに操作されてしまうのは悲しいですよね。 まずは玄関の鍵をしっかり掛けて、安全で楽しいラズパイライフを送りましょう!



にほんブログ村 その他趣味ブログ 電子工作へ
にほんブログ村