Skip to content
Related Articles

Related Articles

Improve Article

Amazon Web Services – Using Single SSH Key For all AWS Regions

  • Difficulty Level : Hard
  • Last Updated : 11 Aug, 2021

Secure Shell also known as SSH is a cryptographic network protocol that helps secure network services over an unsecured network.  It securely helps users to log in to a server with SSH than using a password alone. SSH keys are nearly impossible to decipher by brute force alone unlike passwords.

In this article, we are going to look into how users can use a single SSH key pair for all their AWS regions.

To use a single SHH key pair for all your AWS regions follow the below steps:

For Linux:

Step 1: First generate a public SSH key from a private SSH key.

Step 2: Now import the key into each of your AWS regions. If you don’t have one already begin by creating an ssh key pair.



First, generate a public SSH key file from a private SSH key file.  Replace the key pair name with the name of your private .pem file. Make sure you are working on a bash shell and that the AWS command-line interface is configured with the user that has valid access.

Step 3: Run the following command to set the AWS regions:

AWS_REGIONS="aws ec2 describe-regions --query 'Regionsd[].RegionName'text)"

Step 4: Now run the following command to import the public SSH key into all the regions:

$ for each_region in ${AWS_REGIONS}; do aws ec2 import-key-pair --key-name MyKeyPair 
--public-key-material file://$HOME/.ssh/id_rsa_MyKeyPair.pub
--region $each_region; done

For Windows:

Step 1:  First, generate a public SSH key file from a private SSH key file. So,  open puttygen.

Step 2: Choose Load to load your private key file.

Step 3: Choose Save public key.

Step 4: Import the public ssh key into the desired AWS regions by running the following commands:

$PubFile = Get-Content .\YOUR_PUBLIC_KEY.pub -raw
$Key = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($PubFile))
foreach $Region in (Get-AWSRegion).Region){Import-EC2KeyPair -keyName YOUR_PUBLIC_KEY 
  -PublicKeyMaterial $Key -Region $Region}

Note: replace YOUR_PUBLIC_KEY with your public ssh key file.

My Personal Notes arrow_drop_up
Recommended Articles
Page :