View a markdown version of this page

创建密钥对 - Amazon Tools for PowerShell (版本 4)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

Amazon Tools for PowerShell V4 的支持已到期。

我们建议您迁移到 Amazon Tools for PowerShell V5 。有关如何迁移的更多详细信息和信息,请参阅我们的终止支持公告。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建密钥对

以下 New-EC2KeyPair 示例创建密钥对并将其存储在 PowerShell 变量 $myPSKeyPair 中。

PS > $myPSKeyPair = New-EC2KeyPair -KeyName myPSKeyPair

将密钥对对象通过管道传输到 Get-Member cmdlet 中以查看对象的结构。

PS > $myPSKeyPair | Get-Member TypeName: Amazon.EC2.Model.KeyPair Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() KeyFingerprint Property System.String KeyFingerprint {get;set;} KeyMaterial Property System.String KeyMaterial {get;set;} KeyName Property System.String KeyName {get;set;}

将密钥对对象通过管道传输到 Format-List cmdlet 以查看 KeyName、KeyFingerprint 和 KeyMaterial 成员的值。(为了便于阅读,输入内容已截断。)

PS > $myPSKeyPair | Format-List KeyName, KeyFingerprint, KeyMaterial KeyName : myPSKeyPair KeyFingerprint : 09:06:70:8e:26:b6:e7:ef:8f:fe:4a:1d:bc:9c:6a:63:11:ac:ad:3c KeyMaterial : ----BEGIN RSA PRIVATE KEY---- MIIEogIBAAKCAQEAkK+ANYUS9c7niNjYfaCn6KYj/D0I6djnFoQE... Mz6btoxPcE7EMeH1wySUp8nouAS9xbl9l7+VkD74bN9KmNcPa/Mu... Zyn4vVe0Q5il/MpkrRogHqOB0rigeTeV5Yc3lvO0RFFPu0Kz4kcm... w3Jg8dKsWn0plOpX7V3sRC02KgJIbejQUvBFGi5OQK9bm4tXBIeC... daxKIAQMtDUdmBDrhR1/YMv8itFe5DiLLbq7Ga+FDcS85NstBa3h... iuskGkcvgWkcFQkLmRHRoDpPb+OdFsZtjHZDpMVFmA9tT8EdbkEF... 3SrNeqZPsxJJIxOodb3CxLJpg75JU5kyWnb0+sDNVHoJiZCULCr0... GGlLfEgB95KjGIk7zEv2Q7K6s+DHclrDeMZWa7KFNRZuCuX7jssC... xO98abxMr3o3TNU6p1ZYRJEQ0oJr0W+kc+/8SWb8NIwfLtwhmJEy... 1BX9X8WFX/A8VLHrT1elrKmLkNECgYEAwltkV1pOJAFhz9p7ZFEv... vvVsPaF0Ev9bk9pqhx269PB5Ox2KokwCagDMMaYvasWobuLmNu/1... lmwRx7KTeQ7W1J3OLgxHA1QNMkip9c4Tb3q9vVc3t/fPf8vwfJ8C... 63g6N6rk2FkHZX1E62BgbewUd3eZOS05Ip4VUdvtGcuc8/qa+e5C... KXgyt9nl64pMv+VaXfXkZhdLAdY0Khc9TGB9++VMSG5TrD15YJId... gYALEI7m1jJKpHWAEs0hiemw5VmKyIZpzGstSJsFStERlAjiETDH... YAtnI4J8dRyP9I7BOVOn3wNfIjk85gi1/0Oc+j8S65giLAfndWGR... 9R9wIkm5BMUcSRRcDy0yuwKBgEbkOnGGSD0ah4HkvrUkepIbUDTD... AnEBM1cXI5UT7BfKInpUihZi59QhgdK/hkOSmWhlZGWikJ5VizBf... drkBr/vTKVRMTi3lVFB7KkIV1xJxC5E/BZ+YdZEpWoCZAoGAC/Cd... TTld5N6opgOXAcQJwzqoGa9ZMwc5Q9f4bfRc67emkw0ZAAwSsvWR... x3O2duuy7/smTwWwskEWRK5IrUxoMv/VVYaqdzcOajwieNrblr7c... -----END RSA PRIVATE KEY-----

KeyMaterial 成员存储密钥对的私有密钥。公有密钥存储在Amazon中。您无法从Amazon检索公有密钥,但是,您可以通过将私有密钥的 KeyFingerprint 与Amazon返回的公有密钥的该值进行对比来验证公有密钥。

查看密钥对的指纹

您可以使用 Get-EC2KeyPair cmdlet 查看密钥对的指纹。

PS > Get-EC2KeyPair -KeyName myPSKeyPair | format-list KeyName, KeyFingerprint KeyName : myPSKeyPair KeyFingerprint : 09:06:70:8e:26:b6:e7:ef:8f:fe:4a:1d:bc:9c:6a:63:11:ac:ad:3c

存储私有密钥

要将私有密钥存储到文件中,请将 KeyFingerMaterial 成员通过管道传输到 Out-File cmdlet。

PS > $myPSKeyPair.KeyMaterial | Out-File -Encoding ascii myPSKeyPair.pem

在将私有密钥写入到文件中时,必须指定 -Encoding ascii。否则,openssl 等工具可能无法正确读取此文件。您可以使用类似于以下的命令来验证生成文件的格式是否正确:

PS > openssl rsa -check < myPSKeyPair.pem

(openssl 工具未包含在 Amazon Tools for PowerShell 或 适用于 .NET 的 Amazon SDK 中。)

删除密钥对

您需要密钥对来启动和连接到实例。在用完密钥对后,您可以将其删除。要从Amazon中删除公有密钥,请使用 Remove-EC2KeyPair cmdlet。在出现提示时,按 Enter 可删除密钥对。

PS > Remove-EC2KeyPair -KeyName myPSKeyPair Confirm Performing the operation "Remove-EC2KeyPair (DeleteKeyPair)" on target "myPSKeyPair". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):

变量 $myPSKeyPair 仍存在于当前 PowerShell 会话中,并仍包含密钥对信息。myPSKeyPair.pem 文件也存在。但是,公有密钥不再有效,因为密钥对的私有密钥不再存储在Amazon中。