Desidero utilizzare la stessa coppia di chiavi SSH per accedere alle mie istanze Amazon Elastic Compute Cloud (Amazon EC2) in tutte le regioni AWS. Come posso farlo?
Breve descrizione
Per utilizzare un'unica coppia di chiavi SSH per tutte le regioni AWS, genera innanzitutto una chiave SSH pubblica da una chiave SSH privata. Quindi, importa la chiave in ciascuna delle tue regioni AWS.
Nota: Se ricevi errori durante l'esecuzione dei comandi dell'Interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente dell'Interfaccia della linea di comando AWS.
Risoluzione
Se non ne hai già una, crea una coppia di chiavi SSH.
Linux
1. Genera un file di chiave SSH pubblica (.pub) dal file della chiave SSH privata (.pem):
$ ssh-keygen -y -f MyKeyPair.pem > $HOME/.ssh/id_rsa_MyKeyPair.pub
Nota: Sostituisci MyKeyPair.pem con il nome del tuo file.pem privato. Assicurati di lavorare su una shell (interprete di comandi) bash e di configurare l'Interfaccia della linea di comando AWS con un utente che disponga di un accesso valido.
2. Esegui il seguente comando per impostare AWS_REGIONS:
$ AWS_REGIONS="$(aws ec2 describe-regions --query 'Regions[].RegionName' --output text)"
**Nota:**Se stai usando una shell (interprete di comandi) ZSH, abilita la suddivisione delle parole in modo che il comando for loop iteri correttamente il nome di ogni regione. Usa i seguenti comandi per abilitare la suddivisione delle parole:
$ setopt shwordsplit
3. Esegui il seguente comando per importare la chiave SSH pubblica nelle regioni:
$ for each_region in ${AWS_REGIONS} ; do aws ec2 import-key-pair --key-name MyKeyPair --public-key-material fileb://$HOME/.ssh/id_rsa_MyKeyPair.pub --region $each_region ; done
Windows
1. Genera un file di chiave SSH pubblica (.pub) dal file della chiave SSH privata (.pem):
Apri PuTTYgen.
Scegli Carica per caricare il file della tua chiave privata.
Scegli Salva chiave pubblica.
2. Importa la chiave SSH pubblica nelle regioni AWS desiderate eseguendo i seguenti comandi:
$PubFile = Get-Content .\MyKeyPair.pub -raw
$Key = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($PubFile))
foreach ($Region in (Get-AWSRegion).Region) {Import-EC2KeyPair -KeyName MyKeyPair -PublicKeyMaterial $Key -Region $Region}
Nota: Sostituisci MyKeyPair.pub con il nome del tuo file SSH pubblico.
Informazioni correlate
Riferimento dei comandi dell'Interfaccia della linea di comando AWS: import-key-pair
Endpoint dei servizi AWS
Cmdlet Import-EC2KeyPair