Dav*_*vid 5 linux command-line-interface amazon-ec2
我正在尝试使用命令行界面来获取我刚刚设置的 EC2 实例的描述。
我通过 ssh 连接到服务器并运行命令ec2-describe-images ami-12345abc
。我收到以下错误消息,而不是对实例的描述
Required option '-K, --private-key KEY' missing (-h for usage)
Run Code Online (Sandbox Code Playgroud)
关于我如何解决这个问题的任何建议?
AWS 命令行工具使用私有密钥和证书来建立您的身份,就像 AWS Web 服务 API 所做的那样。因此,您必须在每个命令中传递您的私钥或证书。(在相关说明中,您不需要连接到 EC2 实例来运行命令。您可以从任何安装了工具并连接到 Internet 的机器上运行它们。)
创建在 EC2_PRIVATE_KEY 和 EC2_CERT 环境变量中设置私钥和证书的脚本通常是最简单的。这样,您不必每次都通过命令行选项明确指定它们。
有关更多信息,请参阅下面的文档(尤其是 --private-key 和 --cert 选项)。 API 工具的常用选项
与往常一样,请注意不要在不必要的范围内共享您的私钥和证书。
小智 5
按照步骤为您的 AWS 账户生成私钥和证书。
你有两个选择:
1.您可以导出这些密钥(确保它在您的 bashrc 文件中)并执行 EC2 命令
export EC2_PRIVATE_KEY=$HOME/<where your private key is>/pk-XXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem
export EC2_CERT=$HOME/<where your certificate is>/cert-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem
ec2-describe-images ami-12345abc
Run Code Online (Sandbox Code Playgroud)
2.在CLI中执行AWS时给出私钥和证书文件的路径
ec2-describe-images \
-C <path-to-certificate-file>/cert-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem \
-K <path-to-private-key>/pk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem ami-12345abc
Run Code Online (Sandbox Code Playgroud)
我建议选择选项 2,因为它总是让我记住那些重要的文件。