インストールの途中で、 インストーラが「SSHデーモン(sshd)」の設定について聞いてきます。

Q: 「パスワード認証を許すか?許さないか?」(英語,意訳)

です。

「許さない」と回答した場合、とうぜんパスワード認証で入れません。 というか、インターネットからアクセス可能なサーバであれば、とうぜん、この設定にするべきです

このUbuntuの設定は、どこに書かれる?

インストーラは、 /etc/sshd/sshd_config.d/ ディレクトリ以下に新しくファイルを生成し、 そこに設定を書きこみます。 インストール時の設定をなかったことにするなら、このファイルを変更もしくは削除しましょう

PasswordAuthentication yes
  • こちらがデフォルト
PasswordAuthentication no
  • 「パスワード認証を許さない」と指定したとき

解説

歴史的に、Unixの設定は/etc/以下のテキストファイルに置かれています。 sshd (OpenSSH)の設定は/etc/ssh/sshd_configです。

Ubuntuの、このファイルを読むと、 最初の方で 「Include /etc/ssh/sshd_config.d/*.conf (.confという名前のファイルならすべて)を読み込む」と書かれています。 この行で、インストーラの作成した設定ファイルを読みこんでいます。

ちなみに、本来のOpenSSHに、この行はありません。これはUbuntuの独自拡張です。

また、.d のついたディレクトリを作り、そこにデフォルト以外の設定を追加していくというのはLinux陣営が考えた、 へんてこ設定です。 たぶん設定ツールから操作するために考えたやりかたですが、 設定ツールを使わずに対処しようとすると、読みにくいので、初心者は???でしょう

[参考] 普通のOSは、どうなっているの?

/etc/ssh/sshd_config でコメントアウトされている値(例: # PasswordAuthentication yes)がデフォルト値です。

変更する場合は、 /etc/ssh/sshd_config を、自信を持って編集するのが歴史的なやり方です。 自身がない人はサーバを運用するな!です

このほうが読みやすい。 BSD UnixやDebian GNU/Linux (少なくとも、バージョン10まで)は、いまでも、この方式です

諸注意

Ubuntuの、どのバージョンから、こうなのか?は調べていません。 2024年現在、最新のバージョンは、こうなっているようです