普段はサーバ用途でもUbuntu Desktopをminimal installationで使用することが多いのですが、久しぶりにUbuntu Server 22.04を入れてみたらSSH接続のパスワード認証を有効にできなくてドツボったので対処方法を残しておきます。
結論
/etc/ssh/sshd_config.d/*.conf
にパスワード認証を無効にする設定があったので有効にならなかった
詳細
まずSSH関連の設定を行う /etc/ssh/sshd_config
では冒頭の部分で以下のようにconfファイルをincludeしています。
$ cat /etc/ssh/sshd_config
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
Include /etc/ssh/sshd_config.d/*.conf
(以下、略)
そして、Ubuntu Desktopでは通常はこの /etc/ssh/sshd_config.d
配下には何もファイルがない状態になっています。
$ ll /etc/ssh/ssh_config.d/
total 8.0K
drwxr-xr-x 2 root root 4.0K Feb 26 2022 ./
drwxr-xr-x 4 root root 4.0K Jul 2 00:00 ../
したがってSSHに関する設定はsshd_configファイルで完結しているのですが、Ubuntu Serverでは以下のようにconfファイル(60-cloudimg-settings.conf
)が存在しており、その中でパスワード認証が無効にされているため、sshd_configをいくら変更してみてもパスワード認証が有効に出来ない状態となっていました。
$ ll /etc/ssh/sshd_config.d/
total 16
drwxr-xr-x 2 root root 4096 Oct 1 18:19 ./
drwxr-xr-x 4 root root 4096 Oct 1 18:18 ../
-rw-r--r-- 1 root root 26 Sep 11 23:29 60-cloudimg-settings.conf
$ cat /etc/ssh/sshd_config.d/60-cloudimg-settings.conf
PasswordAuthentication no
そのため、このconfファイルを削除するかもしくはこのデフォルトで存在するファイルよりもさらに先に読み込まれるファイルを用意してその中でパスワード認証を有効にするようにすればOKです。
$ ll /etc/ssh/sshd_config.d/
total 16
drwxr-xr-x 2 root root 4096 Oct 1 18:19 ./
drwxr-xr-x 4 root root 4096 Oct 1 18:18 ../
-rw-r--r-- 1 root root 27 Oct 1 18:19 00-user-settings.conf # <- 追加
-rw-r--r-- 1 root root 26 Sep 11 23:29 60-cloudimg-settings.conf
$ cat /etc/ssh/sshd_config.d/00-user-settings.conf
PasswordAuthentication yes
設定が終わったら最後にSSHのサービスを再起動するのを忘れないでください。
systemctl restart sshd