【发布时间】:2022-01-31 03:53:55
【问题描述】:
如果在 instance metadata service 关闭的情况下启动 EC2 实例,我将无法通过 SSH 连接。
ec2.runInstances({ ... MetadataOptions: {
HttpEndpoint: 'disabled'..
})
但是,如果我在启用 MetadataOptions 的情况下启动并在实例完成启动后通过 modify-instance-metadata-options 调用禁用它,这不是问题。这是记录在案的行为吗?我在任何地方的文档中都找不到明确提到它。
注意 - 这不是安全组、网络 ACL 等问题。
【问题讨论】:
-
您能否提供您正在使用的命令的完整示例?
-
那会很有帮助。另外,为什么要关闭元数据?问题是,AWS 实例很难直接通过 SSH 连接。
-
通过 ec2 js sdk 是普通的
ec2.runInstance。如果我将MetadataOptions: {HttpEndpoint: 'disabled'}添加到该函数的参数中,我将无法再通过 ssh 登录。出于安全原因,我必须关闭元数据(我们的客户可以在我们为他们提供的服务器上运行命令) -
您检查过
/var/log/cloud-init-output.log文件吗?它包含用户数据脚本的日志,并且可能表明在启动过程中出现了问题。您收到的错误是什么?尝试ssh -vvv并编辑您的问题以显示生成的日志消息。 -
我在通过 Web 界面启动 EC2 并禁用元数据选项时遇到了完全相同的问题。似乎它在配置时从元数据端点提取 SSH 密钥,因此禁用元数据会破坏它。这非常令人困惑,因为从来没有任何警告表明 SSH 对不起作用。
标签: amazon-web-services amazon-ec2