
Raspberry Pi 3 SSHのセキュリティを強化する方法として、RSA公開鍵認証により接続し通信するようSSHサーバの環境を設定します。
目次
作業の流れ
以下に作業の流れを示します。
- Raspberry Piで鍵ペア(公開鍵と秘密鍵)ファイルを作成します。
- 秘密鍵ファイルをPCへ送信し保存します。
- Raspberry PiのSSHサーバ設定ファイルを変更します。
- PCからRaspberry PiへSSH(RSA公開鍵認証)で接続します。
それでは、作業に流れに沿って順番に作業を進めていきます。
鍵ペア(公開鍵と秘密鍵)ファイルを作成する
まず、鍵ペア(公開鍵と秘密鍵)ファイルを作成します。鍵ベアはPC側でもRaspberry Pi側どちらでも作成することができますが、ここでは、Raspberry Pi側で作成します。
- 「ssh-keygen」コマンドで、鍵ペアを作成します。
- 「Enter passphrase」の問い合わせに対し、鍵ファイルに対するファスフレーズを入力します。パスフレーズの入力は省略可能ですが、他者に鍵ファイルの盗用防止のためパスフレーズは入力しておいたほうが良いでしょう。
「.ssh」ディレクトリに公開鍵「id_rsa.pub」ファイルと秘密鍵「id_rsa」ファイルが作成されます。
秘密鍵ファイルをPCへ保存する
作成した鍵ペアのうち、秘密鍵「id_rsa」ファイルをPCへ転送し適当な場所へ保存します。本来、秘密鍵は記録媒体にコピーし盗聴されない安全な方法で受け渡すこととされていますが、ここではプライベートなネットワークであり、秘密鍵をFTPでPCへ転送しています。
- PCからRaspberry PiへFTPで接続し、秘密鍵「id_rsa」ファイルをPC側へ転送し保存します。
SSHサーバ設定ファイルを変更する
次に、SSHをRSA公開鍵認証で接続するよう、SSHサーバ設定ファイルを変更します。
- root権限で、「sshd_config」ファイルを編集します。
- 「Port 10022」SSH(RSA公開鍵認証)接続用にポート番号を変更します。(デフォルトは[22])
- 「PermitRootLogin no」rootログインを禁止する。(デフォルトは[yes])
- 「RSAAuthentication yes」RSA認証を有効にする。(デフォルトは[no])
- 「PubkeyAuthentication yes」公開鍵認証を有効にする。(デフォルト[no])
- 「AuthorizedKeysFile %h/.ssh/id_rsa.pub」公開鍵のディレクトリ・ファイル名を指定する。(デフォルトはコメント)
- 「PasswordAuthentication no」パスワード認証を無効にする。(デフォルトは[on])
- 更新した「sshd_config」ファイルを保存します。
- root権限で、SSHサービスをリスタートします。
SSH(RSA公開鍵認証)で接続する
それでは、Tera TermでPaspberry PiにSSH(RAS暗号化)により接続します。
- TCPポートは、先ほどsshd-configで変更した値を指定します。
- RSAを選択し、秘密鍵のファイルを指定します。
- ユーザ名と秘密鍵のパスフレーズ(ユーザ名に対するパスフレーズではありません)を入力します。
- 「OK」ボタンをクリックします。
Raspberry PiへSSHでログインできました。
以上で、RSA公開鍵認証によるSSH接続の環境設定が完了しました。これで、インターネットでも安全にSSH接続できるようになります。