RaspberryPi に公開鍵認証でログインするようにする

鍵を生成する(Mac)

ssh-keygen -t ed25519 -N "" -C "" -f ~/.ssh/raspberrypi

生成された raspberrypi.pub の中身をコピーしておく。

従来のパスワード形式で RaspberryPi に SSH 接続する。

鍵認証の設定 (RaspberryPi)

cd
mkdir .ssh
echo コピーした情報 > .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

鍵認証で SSH 接続できるか試してみる (Mac)

~/.ssh/config に追記

Host pi
  HostName 192.168.xx.xx
  User pi
  IdentityFile ~/.ssh/raspberrypi

SSH 接続する

ssh pi

ログインできればOK

パスワードログインをできなくする (RaspberryPi)

設定ファイルを編集する

sudo vi /etc/ssh/sshd_config

# 以下の箇所を変更
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no

↓

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
PasswordAuthentication no
#PermitEmptyPasswords no

サービスを再起動して反映させる

sudo systemctl restart ssh

動作確認 (Mac)

現在接続中のものとは別のターミナルでパスワードログインできないこと、鍵認証でログインできることを確認する。

設定にミスがあった場合に修正する手段がなくなってしまう可能性があるので、繋がっているものはそのままにしておく。

# OK
ssh pi
# NG
ssh pi@192.168.xx.xx
Permission denied (publickey).

これで接続が楽かつセキュアになった。