Python & Raspberry Pi 開発ブログ ☆彡

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

SSHでログインする パスワード認証と鍵認証

今回はRaspberry PiにSSHで接続する方法を紹介します。ほぼSSH接続で操作していると思いますので、必須の項目ですね。パスワード認証と鍵認証の2通りの方法を紹介します。下記のWindowsからRaspberry PiにSSHで接続する説明となります。

SSH機能を有効にする

OSインストール直後は、SSH機能が無効化されており、使えません。下記のraspi-configコマンドを実行して、SSH機能を有効にします。写真の流れの通りに設定してください。

$ sudo raspi-config
raspi-config-ssh1 raspi-config-ssh2 raspi-config-ssh3

再起動すると、SSHが有効になります。

パスワード認証でログインする

パスワード認証は特に設定する項目はありません。接続時にRaspberry Piのユーザ名とパスワードの入力してください。VS CodeやTeraTermでSSH接続でログインができます。下記コマンドでWindowsからRaspberry Piに鍵認証で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にコピーします。コピーの方法はSCPでもSambaでフォルダを共有しても何でも構いません。id_rsa.pubファイルをRaspberry PiのHomeディレクトリ(/home/pi)に置いた場合は、下記コマンドを実行して、リネームと権限を付与します。

(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接続の設定を変更します。

$ 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

設定後に、再起動します。これでSSHの設定は完了です。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やでもこの方法を使ってログインすることができます。

ラズパイ 設定に戻る
トップページに戻る