Come posso cambiare la coppia di chiavi per la mia istanza ec2 nella console di gestione AWS? Posso interrompere l'istanza, posso creare una nuova coppia di chiavi, ma non vedo alcun collegamento per modificare la coppia di chiavi dell'istanza.
Come posso cambiare la coppia di chiavi per la mia istanza ec2 nella console di gestione AWS? Posso interrompere l'istanza, posso creare una nuova coppia di chiavi, ma non vedo alcun collegamento per modificare la coppia di chiavi dell'istanza.
Risposte:
Questa risposta è utile nel caso in cui non si abbia più accesso SSH al server esistente (ovvero si sia persa la chiave privata).
Se hai ancora accesso a SSH, utilizza una delle risposte di seguito.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair
Ecco cosa ho fatto, grazie al post sul blog di Eric Hammond:
/dev/xvda1
volume (chiamiamolo volume A) - vedi qui/dev/xvdf
(o /dev/sdf
)SSH sulla nuova microistanza e montare il volume A su /mnt/tmp
$ sudo mount / dev / xvdf1 / mnt / tmp
Copia ~/.ssh/authorized_keys
in/mnt/tmp/home/ubuntu/.ssh/authorized_keys
/dev/xvda
.pem
fileQuesto è tutto.
mkdir /mnt/tmp
e quindi mount /dev/xvdf /mnt/tmp
dovrebbe fare il trucco per # 5. E non dimenticare che il passaggio 13. è probabilmente rm ~/.ssh/known_hosts
sulle scatole da cui ti sei collegato.
.ssh/authorized_keys
file originale .
Una volta avviata un'istanza, non è possibile modificare la coppia di chiavi associata all'istanza a livello di metadati, ma è possibile modificare la chiave ssh utilizzata per connettersi all'istanza.
Esiste un processo di avvio sulla maggior parte delle AMI che scarica la chiave ssh pubblica e la installa in un file .ssh / authorized_keys in modo che tu possa accedere a ssh come tale utente usando la chiave ssh privata corrispondente.
Se si desidera modificare la chiave ssh utilizzata per accedere a un'istanza, è necessario modificare il file authorized_keys sull'istanza stessa e convertirlo nella nuova chiave pubblica ssh.
Il file authorized_keys si trova nella sottodirectory .ssh nella home directory dell'utente a cui si sta effettuando l'accesso. A seconda dell'AMI in esecuzione, potrebbe trovarsi in uno di:
/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
/root/.ssh/authorized_keys
Dopo aver modificato un file authorized_keys, utilizzare sempre un terminale diverso per confermare che si è in grado di accedere all'istanza prima di disconnettersi dalla sessione che si sta utilizzando per modificare il file. Non vuoi fare un errore e chiuderti completamente fuori dall'istanza.
Mentre stai pensando alle coppie di chiavi SSH su EC2, ti consiglio di caricare la tua chiave pubblica SSH personale su EC2 invece di far sì che Amazon generi la coppia di chiavi per te.
Ecco un articolo che ho scritto su questo:
Caricamento delle chiavi SSH personali su Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys
Questo si applica solo alle nuove istanze che esegui.
.pem
file della chiave privata sul mio Mac, tuttavia ssh -i key.pem
non si autentica (autorizzazione negata (chiave pubblica)). Nella console di gestione EC2 in Nome coppia chiave non elenca nulla. Questo è allarmante per me. Come posso impostare questo? Sembra basato sulla console di gestione che all'istanza non sono state assegnate chiavi di sicurezza che ho configurato!
Esegui questo comando dopo aver scaricato il tuo pem AWS.
ssh-keygen -f YOURKEY.pem -y
Quindi scaricare l'output in authorized_keys
.
Oppure copia il file pem nella tua istanza AWS ed esegui i seguenti comandi
chmod 600 YOURKEY.pem
e poi
ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys
Istruzioni dal supporto AWS EC2:
questo salverà il file autorizzato_keys aggiornato
ora prova ad aprire una nuova sessione SSH nella tua istanza usando la tua nuova chiave pai
Quando hai confermato di essere in grado di accedere a SSH nell'istanza utilizzando la nuova coppia di chiavi, puoi vi .ssh / authorized_key ed eliminare la vecchia chiave.
Risposta all'osservazione di Shaggie:
Se non riesci a connetterti all'istanza (ad es. Chiave danneggiata), utilizza la console AWS per staccare il volume ( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html ) e ricollegarlo all'istanza di lavoro, quindi modificare la chiave sul volume e ricollegarla all'istanza precedente.
Ho notato che quando è gestito da Elastic Beanstalk, è possibile modificare la coppia di chiavi EC2 attiva. In Elastic Beanstalk> Configurazione> Sicurezza, scegli la nuova chiave dal menu a discesa della coppia di chiavi EC2 . Vedrai questo messaggio che ti chiede se sei sicuro:
EC2KeyName: le modifiche alle impostazioni dell'opzione EC2KeyName non avranno effetto immediato. Ciascuna delle tue istanze EC2 esistenti verrà sostituita e le nuove impostazioni diventeranno effettive.
La mia istanza era già terminata quando l'ho fatto. Quindi è stato avviato, terminato e riavviato. Apparentemente "sostituire" significa terminare e creare una nuova istanza. Se hai modificato il volume di avvio, crea prima un AMI, quindi specifica tale AMI nello stesso modulo Elastic Beanstalk> Configurazione> Istanze dell'ID AMI personalizzato . Ciò avverte anche della sostituzione delle istanze EC2.
Dopo aver modificato la coppia di chiavi EC2 e l'ID AMI personalizzato e dopo aver visualizzato gli avvisi su entrambi, fare clic su Salva per continuare.
Ricorda che l'indirizzo IP cambia quando viene ricreata l'istanza, quindi dovrai recuperare un nuovo indirizzo IP dalla console EC2 da utilizzare durante la connessione tramite SSH.
Ho seguito questo approccio e dopo qualche tempo sono riuscito a farlo funzionare. La mancanza di comandi reali lo ha reso difficile, ma l'ho capito. TUTTAVIA - poco dopo è stato trovato e testato un approccio molto più semplice:
Se si seguono i passaggi seguenti, si risparmia molto tempo e non sarà necessario interrompere l'istanza in esecuzione.
Questo è tutto. Divertiti :)
Credo che l'approccio più semplice sia:
Nel caso in cui si stia utilizzando la piattaforma ElasticBeanstalk, è possibile modificare le chiavi andando:
Ciò terminerà l'istanza corrente e ne creerà una nuova con i tasti / le impostazioni scelti.
Esistono due scenari in questa domanda: -
1) Non hai accesso al file .pem ecco perché vuoi crearne uno nuovo.
2) Hai il. accesso ai file pem con te, ma vuoi solo cambiare o creare un nuovo file .pem per motivi di vulnerabilità o sicurezza .
Quindi se hai perso le chiavi puoi scorrere verso l'alto e vedere altre risposte . Ma se semplicemente cambi il tuo file .pem per motivi di sicurezza, segui i passaggi: -
1) Vai al login della console AWS e crea un nuovo file .pem dalla sezione coppia di chiavi laggiù. Verrà scaricato automaticamente il file .pem sul tuo PC
2) cambia il permesso in 400 se stai usando Linux / Ubuntu premi il comando sotto
chmod 400 yournewfile.pem
3) Genera RSA del file appena scaricato nel tuo computer locale
ssh-keygen -f yournewfile.pem -y
4) Copia il codice RSA da qui
5) Ora SSH nella tua istanza tramite il precedente file .pem
ssh -i oldpemfileName.pem username@ipaddress
sudo vim ~/.ssh/authorized_keys
6) Dare spazio a due righe e incollare qui l'RSA copiato del nuovo file, quindi salvare il file
7) Ora il tuo nuovo file .pem è collegato all'istanza in esecuzione
8) Se si desidera disabilitare l'accesso al file .pem precedente, modificare semplicemente il file
sudo vim ~/.ssh/authorized_keys
file e rimuovere o modificare la RSA precedente da qui.
Nota: - Rimuovere attentamente in modo che RSA appena creato non venga modificato.
In questo modo, è possibile modificare / connettere il nuovo file .pem con l'istanza in esecuzione.
È possibile revocare l'accesso al file .pem generato in precedenza per motivi di sicurezza.
Spero che possa aiutare!
La soluzione più semplice è copiare il contenuto di
~/.ssh/id_rsa.pub
nelle chiavi autorizzate della tua istanza AWS all'indirizzo
~/.ssh/authorized_keys
Questo ti permetterà di ssh nell'istanza EC2 senza specificare un file pem per il comando ssh. Puoi rimuovere tutte le altre chiavi dopo aver verificato la connessione ad esso.
Se devi creare una nuova chiave per condividerla con qualcun altro, puoi farlo con:
ssh-keygen -t rsa
che creerà il file key.pem privato e puoi ottenerne la chiave pubblica con:
ssh-keygen -f private_key.pem -y > public_key.pub
Chiunque abbia private_key.pem sarà in grado di connettersi
ssh user@host.com -i private_key.pem
~/.ssh/authorized_keys
quando non riesco nemmeno ad istanza di SSH aws?
Non è necessario ruotare il dispositivo root e modificare la chiave pubblica SSH authorized_keys
. Per questo può utilizzare userdata per aggiungere chiavi ssh a qualsiasi istanza. Per prima cosa devi creare un nuovo KeyPair usando la console AWS o tramite ssh-keygen.
ssh-keygen -f YOURKEY.pem -y
Questo genererà la chiave pubblica per il tuo nuovo KeyPair SSH, copia questa chiave pubblica e la usa nello script seguente.
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
/bin/echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6xigPPA/BAjDPJFflqNuJt5QY5IBeBwkVoow/uBJ8Rorke/GT4KMHJ3Ap2HjsvjYrkQaKANFDfqrizCmb5PfAovUjojvU1M8jYcjkwPG6hIcAXrD5yXdNcZkE7hGK4qf2BRY57E3s25Ay3zKjvdMaTplbJ4yfM0UAccmhKw/SmH0osFhkvQp/wVDzo0PyLErnuLQ5UoMAIYI6TUpOjmTOX9OI/k/zUHOKjHNJ1cFBdpnLTLdsUbvIJbmJ6oxjSrOSTuc5mk7M8HHOJQ9JITGb5LvJgJ9Bcd8gayTXo58BukbkwAX7WsqCmac4OXMNoMOpZ1Cj6BVOOjhluOgYZbLr" >> /home/hardeep/.ssh/authorized_keys
--//
Dopo il riavvio la macchina avrà la chiave di pubblicazione SSH specificata. Rimuovere i dati utente dopo il primo riavvio. Ulteriori informazioni sui dati utente all'avvio .
Avvertenza: non dimenticare di cancellare nuovamente i dati dell'utente. Altrimenti questo tasto verrà premuto ad ogni avvio dell'istanza. Istruzioni dettagliate .
#cloud-config
bootcmd:
- echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys
Ho provato i passaggi seguenti e ha funzionato senza arrestare l'istanza. Il mio requisito era: poiché ho cambiato la mia macchina client, il vecchio file .pem non mi permetteva di accedere all'istanza ec2.
Vedrai le tue vecchie chiavi in quel file.
ssh-keygen -f YOUR_PEM_FILE.pem -y Genererà una chiave. Aggiungere la chiave a ~ / .ssh / authorized_keys aperta nel passaggio 1. Non è necessario eliminare la vecchia chiave.
Dalla console AWS, crea una nuova coppia di chiavi. Conservalo nella tua nuova macchina. Rinominalo nel vecchio file pem - motivo per cui il vecchio file pem è ancora associato all'istanza ec2 in AWS.
Tutto fatto.
Sono in grado di accedere ad AWS ec2 dal mio nuovo computer client.
Sono disponibili diverse opzioni per sostituire la chiave dell'istanza EC2.
Poiché la prima opzione può essere trovata facilmente nelle risposte o nel motore di ricerca di tua scelta, voglio concentrarmi sul Gestore di sistemi.
Systems Manager
Automation
lato sinistro.Execute Automation
AWSSupport-TroubleshootSSH
(di solito è nell'ultima pagina)Puoi trovare ulteriori informazioni sulla documentazione ufficiale di AWS
La risposta di Yegor256 ha funzionato per me, ma ho pensato di aggiungere solo alcuni commenti per aiutare coloro che non sono così bravi a montare unità (come me!):
Amazon ti offre la scelta di come desideri assegnare un nome al volume quando lo allevi. Hai usato un nome nell'intervallo da / dev / sda - / dev / sdp Le versioni più recenti di Ubuntu rinomineranno ciò che hai inserito in / dev / xvd (x) o qualcosa in tal senso.
Quindi per me, ho scelto / dev / sdp come nome il nome di mount in AWS, quindi ho effettuato l'accesso al server e ho scoperto che Ubuntu aveva rinominato il mio volume in / dev / xvdp1). Ho quindi dovuto montare l'unità - per me ho dovuto farlo in questo modo:
mount -t ext4 xvdp1 /mnt/tmp
Dopo aver saltato tutti quei cerchi ho potuto accedere ai miei file su / mnt / tmp
Funzionerà solo se si ha accesso all'istanza in cui si desidera modificare / aggiungere la chiave. È possibile creare una nuova coppia di chiavi. O se hai già la coppia di chiavi, puoi incollare la chiave pubblica della nuova coppia nel file authorized_keys sulla tua istanza.
vim .ssh / authorized_keys
Ora puoi usare la chiave privata per quella coppia e accedere.
Spero che sia di aiuto.
se non riesci ad accedere alla VM e hai eliminato la chiave ssh e puoi anche cambiare la coppia di chiavi della tua ec2 usando i passaggi seguenti. Andare passo dopo passo 1) interrompere l'istanza ec2. 2) scattare un'istantanea di VM e archiviazione. 3) creare una nuova macchina virtuale mentre la si crea selezionare la propria istantanea e creare una macchina virtuale dalla propria istantanea. 4) mentre la creazione della VM scarica la tua coppia di chiavi. 5) una volta che hai VM UP puoi ssh con una nuova coppia di chiavi e anche i tuoi dati torneranno.
Cosa puoi fare...
Crea un nuovo profilo / ruolo dell'istanza a cui è allegata la politica AmazonEC2RoleForSSM.
Allegare questo profilo istanza all'istanza.
Grazie per i consigli ragazzi. Li terrò sicuramente a mente quando devo riposare le coppie di chiavi. Tuttavia, nell'interesse dell'efficienza e della pigrizia, ho trovato qualcos'altro:
Spero che questo possa esserti utile e risparmiare un po 'di tempo, nonché ridurre al minimo la quantità di capelli bianchi che ottieni da cose come questa :)