Raspberry Pi & Python 開発ブログ ☆彡

Raspberry PiとPythonの基本的な使い方をわかりやすく解説。初心者、入門者必見!!

Raspbery PiにSSH接続する方法 パスワード/鍵認証の両方解説!

ssh setting

この記事の内容は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

raspi-config-ssh1
raspi-config-ssh2
raspi-config-ssh3

再起動すると、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接続でログインすることができます。

鍵認証でログインする

鍵認証の動作イメージは下記サイトが非常にわかりやすかったです。参考にしてください。

www.koikikukan.com

鍵を生成する

鍵認証をログインする場合、まず鍵を生成します。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やでもこの方法を使ってログインすることができます。