aws用ami新创建之后用密码登录不了
/etc/ssh/sshd_config.d/50-cloud-init.conf
这个文件 不是所有机器都有,它主要出现在一些基于云的 Linux 镜像(尤其是 AWS EC2、Azure、GCP 等)上,并且 通常是新版的云镜像才会有。
具体情况:
-
传统 Linux 或自己安装的服务器
/etc/ssh/sshd_config.d/
目录可能根本不存在。- SSH 配置完全由
/etc/ssh/sshd_config
控制。
-
云厂商的预配置镜像(AMI/Cloud-Init 支持)
- 新版 AMI 通常会有
/etc/ssh/sshd_config.d/50-cloud-init.conf
。 - 这是 cloud-init 自动生成的配置片段,用于强制密码登录关闭(PasswordAuthentication no)、禁止 root 登录等安全策略。
- 这样做的目的是 提升安全性,防止默认 AMI 密码被滥用。
- 新版 AMI 通常会有
-
Cloud-init 的机制
- cloud-init 在实例首次启动时,会根据元数据生成配置文件片段。
/etc/ssh/sshd_config.d/
下的文件会被sshd
自动 include,优先级通常高于主配置文件。
✅ 结论:
- 新旧差异:老机器、手动安装的 Linux 可能没有
/etc/ssh/sshd_config.d/50-cloud-init.conf
;新版云镜像才可能有。 - 管理方式:如果有这个文件,你需要修改它或覆盖它,才能改变 SSH 的默认行为。
排查方法
# 查看所有配置文件中 passwordauthentication 的定义
grep -Ri passwordauthentication /etc/ssh/sshd_config*
然后确认:
没有重复定义
修改后重启 sshd
如果是 AWS,确认 cloud-init 或 AMI 安全策略没有覆盖