Ubuntu 22.04 LTS serverをインストールし、sshdでPasswordAuthentication noと設定しているのにもかかわらず、パスワード認証でログインできてしまう。
以前、/etc/ssh/sshd_configの中にPasswordAuthentication yesが複数箇所に書かれていて、うっかりパスワード認証ができてしまっていた問題を思い出した。
以前の記録していたのは、後から書かれたPasswordAuthentication yesが有効になってしまうから、それをちゃんとコメント化しておくように、という投稿だった。
つまりは後出しが勝つので気をつけましょう、ということを書き記している。
でも、今日やってみると動きが全然違っている。20.04.4、22.04.2のいずれも。
まず、/etc/ssh/sshd_config.d/50-cloud-init.confというファイルができている。
これは、/etc/ssh/sshd_configの中から、これで読み込まれている。
/etc/ssh/sshd_config
Include /etc/ssh/sshd_config.d/*.conf
で、読み込まれるそのファイルには、これが書かれている。
/etc/ssh/sshd_config.d/50-cloud-init.conf
PasswordAuthentication yes
これが先に読み込まれた結果、後からPasswordAuthentication noという行を読み込んでも、無視されている。
先に書かれているものが優先されるようだ(これが過去の記憶と違っていて混乱)。
50-cloud-init.confというのは、インストール時に設定がされるものらしい。
これを書き換えることを一瞬考えたんだけれども、ちょっと検索してみるとcloud-initによって設定が上書きされるかもしれない、と書かれていた。
それは困る。
以上から、00-my.confを新規作成して、先にパスワード認証はできないという設定が読み込まれるように仕掛けることにした。
/etc/ssh/sshd_config.d/00-my.conf ※新規作成
PasswordAuthentication no
設定を反映させる。
$ sudo systemctl restart ssh
これで、パスワード認証を受け付けなくなった。
仮にcloud-initが動いて設定を変えられても、パスワード認証が有効になることはないだろう。
コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他