Ubuntu Server 23.10最小安装后SSH密码认证配置被50-cloud-init.conf覆盖的问题咨询
Ubuntu Server 23.10最小安装后SSH密码认证配置被50-cloud-init.conf覆盖的问题咨询
嗨,我来帮你理清楚这个问题~
首先说这个50-cloud-init.conf文件:它是cloud-init工具生成的SSH配置片段。cloud-init是Ubuntu(包括很多云原生发行版)标配的系统初始化工具,原本主要用于云环境中自动配置新实例,但从23.10的最小安装来看,官方把它的应用范围扩展到了本地安装场景,用来统一管理系统初始化时的各类设置,其中就包括SSH的认证规则。
至于为什么会生成这个文件,这确实是23.10版本的一个新调整——之前的Ubuntu Server版本,哪怕是最小安装,也不会在本地部署时生成这个SSH配置片段。现在官方倾向于用/etc/ssh/sshd_config.d/目录下的独立配置文件来管理细分的SSH规则,这些.conf文件的加载优先级比主配置/etc/ssh/sshd_config更高,所以里面的设置会直接覆盖主文件里的对应项,这就是你改了主配置却没生效的核心原因。
再说说你的修复方法:完全没问题!直接修改50-cloud-init.conf里的PasswordAuthentication no是非常贴合当前Ubuntu配置逻辑的做法。sshd会自动加载这个目录下的所有配置片段,你的修改会被正确应用,而且只要你不主动重置cloud-init的配置,后续系统更新也不会轻易覆盖这个修改。如果后续你不想让cloud-init插手SSH配置,也可以调整cloud-init的全局配置来禁用它的SSH管理模块,但就目前来说,你的修复方式已经足够稳妥了。
备注:内容来源于stack exchange,提问作者coding4fun




