我有一个从 Web 控制台创建的实例,使用“经典”向导和默认的 Amazon Linux 映像。
当我转到“实例操作”、“连接”并选择“使用独立 SSH 客户端连接”选项时,它具有正确的字符串,使用 ec2-user@。
我将其保存为 AMI,然后通过 ec2 命令行工具创建了一个新实例:
ec2-run-instances <ami> -k <my key> -g <my security group>
现在,当我获取连接字符串时,它使用 root@,但这不起作用——我需要将其更改为 ec2-user 才能实际连接。
这没什么大不了的,但我想知道为什么会有差异——当我通过命令行创建它时是否缺少一个参数?
答案1
ec2-user 和 root 是服务器上的两个不同用户。默认情况下,/etc/ssh/sshd_config 不允许 root SSH 访问。当然,您可以更改此设置,但这被认为是一种良好的安全做法。(Root 是一个已知的特权帐户,因此是攻击者的主要目标。)
您的 ec2 命令行工具有多旧?我猜它们以前允许 root 访问,但现在不再允许了。