この記事の内容はRaspberry Pi 4と3の両方で動作確認済みです
ブログ管理者のP.Hです!
今回はRaspberry PiにSSHで接続する方法を紹介します。多くの方がSSH接続で操作していると思いますので、必須の項目ですね。パスワード認証と鍵認証の2通りの方法を紹介します。
それではSSH接続の設定について解説してきます。下記記事は、WindowsからRaspberry PiにSSHで接続する説明となります。
SSH機能を有効にする
Raspberry PiはデフォルトでSSH機能が無効化されています。sudo raspi-config
コマンドを実行して、SSH機能を有効にします。下記写真の通りに設定してください。
$ sudo raspi-config
再起動すると、SSHが有効になります。
パスワード認証でログインする
パスワード認証でログインする場合、特に設定は必要ありません。SSH接続時にRaspberry Piのユーザ名とパスワードを入力してログインしてください。VS CodeやTeraTermを使って、SSH接続でログインすることができます。
また、Windowsであれば、下記コマンドでSSH接続が可能です。コマンドプロンプトを起動し、コマンドを実行してください。
> ssh -p 22 pi@xxx.xxx.xxx.xxx
例: ssh -p 22 pi@192.168.0.10
- Raspberry Pi のユーザー名:pi
- Raspberry Pi のIPアドレス:192.168.0.10
Enterキーを押して、パスワードを入力します。以上の操作で、SSH接続でログインすることができます。
鍵認証でログインする
鍵認証の動作イメージは下記サイトが非常にわかりやすかったです。参考にしてください。
鍵を生成する
鍵認証をログインする場合、まず鍵を生成します。Windowsのコマンドプロンプトで、下記コマンドを実行します。
(Windowsでの操作) > ssh-keygen -t rsa
途中で鍵の保存先やパスフレーズを聞かれますが、Enterキーを押して、進めてください。保存先にid_rsaとid_rsa.pubファイルができていることを確認してください。
Raspberry Piで公開鍵の設定をする
先ほど作成したid_rsa.pub(公開鍵)ファイルをRaspberry PiのHomeディレクトリ(/home/pi)にコピーします。コピーの方法は何でも構いません(Sambaでフォルダを共有する、SCPを使う等)。
下記コマンドを実行して、コピーした公開鍵をリネームして.sshフォルダに移動します(.sshフォルダがない場合は新規に作成してください)。また、chmodコマンドで権限を付与します。
(Raspberry Piでの操作) $ cd ~ $ cat id_rsa.pub >> .ssh/authorized_keys $ chmod 600 .ssh/authorized_keys $ rm id_rsa.pub
Raspberry PiのSSH接続設定
/etc/ssh/sshd_config
ファイルを編集して、SSH接続の設定を変更します。下記コマンドでssdh_configを開きます。
$ sudo nano /etc/ssh/sshd_config
sshd_configファイルはいろいろな設定項目がありますが、下記の項目で必要な部分だけコメントを外し、設定を行ってください。
# ポート番号を変えたい場合は、Portの番号を変える Port 22 # rootでのログインを禁止したい場合は、PermitRootLoginをnoに設定する PermitRootLogin no # 鍵認証を有効化したい場合は、PubkeyAuthenticationをyesに設定する # また、公開鍵のPathが.ssh/authorized_keysであることを確認する PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 # IDとパスワードでのログインを無効にしたい場合は、PasswordAuthenticationをnoに設定する PasswordAuthentication no
設定後に、再起動します。これで鍵認証の設定は完了です。
注意事項
- IDとパスワードでのログインは、鍵認証でログインができることを確認後に、無効にしたほうが良いです。鍵認証がうまくいっていないと、SSH接続する方法がなくなってしまいます。
Windowsからの接続確認
下記コマンドでWindowsからRaspberry Piに鍵認証でSSH接続することができます。
> ssh -i 秘密鍵のpath -p 22 pi@xxx.xxx.xxx.xxx
例: ssh -i C:\Users\username\Desktop\id_rsa -p 22 pi@192.168.0.10
- 秘密鍵のpath : C:\Users\username\Desktop\id_rsa
- Raspberry Pi のユーザー名:pi
- Raspberry Pi のIPアドレス:192.168.0.10
これでSSHのセキュリティも上がり、パスワード入力もしないくていいので便利ですね。VS CodeやTeraTermやでもこの方法を使ってログインすることができます。