ラズベリーパイへのSSH接続をパスワードレス化する

ラズベリーパイにSSH接続する際に求められるパスワードを省略する方法を紹介します。

1.公開鍵と秘密鍵の生成

以下のコマンドは自分のローカルマシンで公開鍵と秘密鍵のペアを生成します。パスフレーズを求められた場合はEnterを押し、パスフレーズを省略します。

# --ローカルマシンで実施--
ssh-keygen

# --以下は出力結果の例です--
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in id_rsa
Your public key has been saved in id_rsa.pub
The key fingerprint is:
SHA256:K1TSHabxS34nXq0EKtqO6o6dtMMSOftZxZSfjNoZ68UE user@device.local
The key's randomart image is:
+---[RSA 3072]----+
|    .   ....     |
|     oo=...+.    |
|.   ..*o+o. ..   |
| o   oo=.E.....  |
|+    .o.S +o     |
|+.  .o + B.      |
|.o .. = * o      |
| o=o ooo.        |
|o==o  . dummy    |
+----[SHA256]-----+

「id_rsa」(秘密鍵)、「id_rsa.pub」(公開鍵)が保管されたフォルダが表示されます。具体的には以下の部分です。

Enter file in which to save the key (/home/user/.ssh/id_rsa)

この場合は「/home/user/.ssh」に鍵のペアが保管されています

2.公開鍵の配置

ラズベリーパイに公開鍵を登録します。登録するには以下のコマンドを実行します。

# --ローカルマシンで実行します--
# --pi@raspberrypi.localはローカルLAN上のラズベリーパイにアクセスするデフォルト値--

ssh-copy-id pi@raspberrypi.local

ssh-copy-idコマンド実行時にpasswordを求められた場合はssh接続する際に使うパスワードを使ってください。公開鍵配置後はパスワードは必要ありません。

公開鍵の名称をデフォルトのid_rsa.pub以外で指定する場合は -i オプションを指定してください

# --ローカルマシンで実行します--

ssh-copy-id -i <public_key_name.pub> pi@raspberrypi.local

3.パスフレーズの省略について

パスフレーズを設定すると、秘密鍵を利用するごとにパスフレーズの入力が必要になります。SSH接続のパスワード入力を減らす目的ではパスフレーズは利用できません。

パスフレーズを省略しても生成される秘密鍵は毎回異なります。パスフレーズでセキュリティを高めても、流出した場合に利用まで時間を稼ぐ効果しかありません。

それよりも秘密鍵が外部に流出しないように管理する方が現実的でしょう。例えば、以下のような選択肢が現実的です。

  1. 秘密鍵の保管PCにログインする際に2段階認証を設定する

  2. 秘密鍵をクラウドや鍵管理システムに保管し利用する

  3. 1、2を組み合わせてクラウドやシステムへのアクセスを2段階認証に設定してより強固な管理をする

まとめ: 公開鍵認証を使用してラズベリーパイへのSSH接続をパスワードレス化する方法を紹介しました。

この記事が気に入ったらサポートをしてみませんか?