我正在尝试使用命令行界面来获取我刚刚设置的 EC2 实例的描述。
我通过 ssh 连接到服务器并运行命令ec2-describe-images ami-12345abc
。我没有看到实例描述,而是收到了以下错误消息
Required option '-K, --private-key KEY' missing (-h for usage)
关于如何解决这个问题有什么建议吗?
答案1
AWS 命令行工具使用私钥和证书来建立您的身份,就像 AWS Web 服务 API 一样。因此,您必须在每个命令中传递您的私钥或证书。(相关说明:您无需连接到 EC2 实例即可运行命令。您可以从安装了工具并具有互联网连接的任何机器上运行它们。)
通常最简单的方法是创建一个脚本,在 EC2_PRIVATE_KEY 和 EC2_CERT 环境变量中设置私钥和证书。这样,您不必每次都通过命令行选项明确指定它们。
有关更多信息,请参阅下面的文档(特别是 --private-key 和 --cert 选项)。 API 工具的常用选项
和往常一样,请注意不要在不必要的范围内共享您的私钥和证书。
答案2
按照步骤为您的 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
2.在 CLI 中执行 AWS 时提供私钥和证书文件的路径
ec2-describe-images \
-C <path-to-certificate-file>/cert-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem \
-K <path-to-private-key>/pk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem ami-12345abc
我建议选择选项 2,因为它总能让我记住那些重要的文件。
答案3
向 Amazon EC2 CLI 提供访问密钥的最简单方法是设置 AWS_ACCESS_KEY 和 AWS_SECRET_KEY 环境变量。首先,将以下行添加到 ~/.bashrc 并保存文件。
export AWS_ACCESS_KEY=your-aws-access-key-id
export AWS_SECRET_KEY=your-aws-secret-key
更新 ~/.bashrc 后,运行以下命令:
source ~/.bashrc
要验证您的 CLI 工具是否设置正确,请运行以下命令:
ec2-describe-regions
来源: http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/set-up-ec2-cli-linux.html