🤖

Raspberry Pi ImagerでSSHの公開鍵認証のみを許可する設定の検証

2025/02/23に公開

はじめに

Raspberry Pi ImagerでOSをインストールする際、設定を編集するオプションの中に「SSHの公開鍵認証のみを許可する」という項目があります。この設定を適用すると、SSH接続の際にパスワード認証が無効になり、公開鍵認証のみが有効になります。本記事では、この設定がどのように作用するかを検証し、Windows環境からRaspberry PiにSSH接続する手順を紹介します。

SSH鍵の作成

  1. Raspberry Pi Imagerで機器、OS、ストレージを選択し、次へ設定を編集する と押すとOS Customizationが開きます。

  2. サービスタブにでSSHを有効にします。

  3. 公開鍵認証のみを許可するを選択し、SSH-KEYGENを実行するをクリックしします。
    すると、公開鍵が表示されます。

  4. 実行後、Windowsの ~/.ssh フォルダ内に id_rsa(秘密鍵)と id_rsa.pub(公開鍵)が生成されます。
    ssh-keygenコマンドで作成したのと同じ感じでファイルが出来上がりますが、名前は固定のようです。

  5. Raspberry Pi側では、OSのインストール時に ~/.ssh/authorized_keys ファイルが自動的に作成され、公開鍵認証が有効になります。これにより、追加の設定なしで公開鍵認証を利用できる状態になります。

~/.ssh $ cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDEKxzYQ ....(省略)

WindowsからRaspberry PiにSSH接続

WindowsからSSHで接続するには、以下のコマンドを実行します。

ssh -i C:\Users\ユーザー名\.ssh\id_rsa tansan@raspberrypi.local

-i オプションで秘密鍵 (id_rsa) を指定して接続します。

接続に成功すれば、Raspberry Piのコマンドラインにアクセスできるようになります。公開鍵認証のみが有効になっている場合、パスワードを求められることはありません。

SSHの設定を確認・変更する

Raspberry PiのSSH設定ファイル /etc/ssh/sshd_config を編集して、パスワード認証を無効化し、公開鍵認証を有効にすることも可能です。

sudo vim /etc/ssh/sshd_config

設定内容を以下のように変更します。

PubkeyAuthentication yes  # 公開鍵認証を有効化
PasswordAuthentication no  # パスワード認証を無効化

設定を変更した後、SSHサービスを再起動します。

sudo systemctl restart ssh

この設定により、Raspberry Piへのアクセスは完全に公開鍵認証のみとなり、セキュリティが向上します。

SSH設定ファイル (~/.ssh/config) の活用

Windows側でSSH設定を簡略化するために、~/.ssh/config に以下の設定を追加します。

Host raspberrypi
  HostName raspberrypi.local
  User tansan
  IdentityFile ~/.ssh/id_rsa

これにより、以下の簡単なコマンドで接続できるようになります。

ssh raspberrypi

この方法を利用すると、毎回 -i オプションを指定する必要がなくなり、よりスムーズにSSH接続が可能になります。

VS Code Remote Exploerについて

Visual Studio Code の Remote Exploerは~/.ssh/configを参照しているようです。~/.ssh/config変更後に更新ボタンを押すと反映されます。

まとめ

Raspberry Pi Imagerの「SSHの公開鍵認証のみを許可する」オプションを使用すると、デフォルトで公開鍵認証が有効化され、パスワード認証が無効になります。本記事の手順を実施することで、Windows環境から安全にRaspberry PiへSSH接続できるようになります。

Discussion