AWS Boto3 describe_key_pairs未返回公钥字段,是否需从私钥获取?
问题解答
- 你混淆了Boto2和Boto3的API响应结构,Boto3的
describe_key_pairs响应里对应的公钥字段是PublicKeyMaterial,并非Boto2文档中提及的PublicKey。 - 你调用时已添加
IncludePublicKey=True参数,只要目标密钥对是当前AWS账户创建的(而非导入的第三方密钥对),就能在返回的KeyPairs列表元素中获取PublicKeyMaterial字段,无需从私钥中提取公钥。 - 若密钥对是导入的第三方密钥对,AWS不会存储其公钥内容,此时调用该API无法拿到公钥,这种场景下才需要从本地保存的私钥中提取公钥。
修正后提取公钥的代码示例:
response = self.ec2.describe_key_pairs( KeyNames=[ name, ], IncludePublicKey=True, ).get("KeyPairs") # 获取公钥内容 if response: public_key = response[0].get("PublicKeyMaterial")
内容的提问来源于stack exchange,提问作者maxmin
相关产品推荐
相关产品推荐

