Use ImportKeyPair with an AWS SDK or CLI - Amazon Elastic Compute Cloud

Use ImportKeyPair with an AWS SDK or CLI

The following code examples show how to use ImportKeyPair.

CLI
AWS CLI

To import a public key

First, generate a key pair with the tool of your choice. For example, use this ssh-keygen command:

Command:

ssh-keygen -t rsa -C "my-key" -f ~/.ssh/my-key

Output:

Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/ec2-user/.ssh/my-key. Your public key has been saved in /home/ec2-user/.ssh/my-key.pub. ...

This example command imports the specified public key.

Command:

<userinput>aws ec2 import-key-pair --key-name <replaceable>"my-key"</replaceable> --public-key-material <replaceable>fileb://~/.ssh/my-key.pub</replaceable></userinput>

Output:

{ "KeyName": "my-key", "KeyFingerprint": "1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca" }
  • For API details, see ImportKeyPair in AWS CLI Command Reference.

PowerShell
Tools for PowerShell

Example 1: This example imports a public key to EC2. The first line stores the contents of the public key file (*.pub) in the variable $publickey. Next, the example converts the UTF8 format of the public key file to a Base64-encoded string, and stores the converted string in the variable $pkbase64. In the last line, the converted public key is imported to EC2. The cmdlet returns the key fingerprint and name as results.

$publickey=[Io.File]::ReadAllText("C:\Users\TestUser\.ssh\id_rsa.pub") $pkbase64 = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($publickey)) Import-EC2KeyPair -KeyName Example-user-key -PublicKey $pkbase64

Output:

KeyFingerprint KeyName -------------- ------- do:d0:15:8f:79:97:12:be:00:fd:df:31:z3:b1:42:z1 Example-user-key
  • For API details, see ImportKeyPair in AWS Tools for PowerShell Cmdlet Reference.

For a complete list of AWS SDK developer guides and code examples, see Create Amazon EC2 resources using an AWS SDK. This topic also includes information about getting started and details about previous SDK versions.