インストールの途中で、 インストーラが「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年現在、最新のバージョンは、こうなっているようです