Raspberry Pi ImagerでSSHの公開鍵認証のみを許可する設定の検証
はじめに
Raspberry Pi ImagerでOSをインストールする際、設定を編集するオプションの中に「SSHの公開鍵認証のみを許可する」という項目があります。この設定を適用すると、SSH接続の際にパスワード認証が無効になり、公開鍵認証のみが有効になります。本記事では、この設定がどのように作用するかを検証し、Windows環境からRaspberry PiにSSH接続する手順を紹介します。
SSH鍵の作成
-
Raspberry Pi Imagerで機器、OS、ストレージを選択し、
次へ
→設定を編集する
と押すとOS Customizationが開きます。
-
サービスタブにでSSHを有効にします。
-
公開鍵認証のみを許可する
を選択し、SSH-KEYGENを実行する
をクリックしします。
すると、公開鍵が表示されます。
-
実行後、Windowsの
~/.ssh
フォルダ内にid_rsa
(秘密鍵)とid_rsa.pub
(公開鍵)が生成されます。
ssh-keygen
コマンドで作成したのと同じ感じでファイルが出来上がりますが、名前は固定のようです。
-
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/config
) の活用
SSH設定ファイル (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