Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Come posso utilizzare cloud-init e user data per aggiungere nuovi account utente AWS con accesso SSH alla mia istanza EC2 Linux?
Desidero creare un utente aggiuntivo che possa connettersi alla mia istanza Amazon Elastic Compute Cloud (Amazon EC2) Linux con SSH.
Breve descrizione
Includi il comando user data che esegue queste attività:
- Crea un nuovo utente.
- Concede le autorizzazioni sudo all'utente.
- Aggiunge la chiave pubblica SSH al file authorized_keys.
Risoluzione
Importante: prima di modificare un'istanza, controlla quanto segue:
- Se arresti e riavvii l'istanza, i dati sui volumi dell'archivio dell'istanza vengono cancellati. Esegui il backup di tutti i dati sul volume dell'archivio dell'istanza che desideri conservare. Per ulteriori informazioni, consulta Root volumes for your Amazon EC2 instances.
- Se interrompi e riavvii l'istanza, l'indirizzo IP pubblico dell'istanza cambia. È consigliabile utilizzare un indirizzo IP elastico invece di uno pubblico quando indirizzi il traffico esterno verso l'istanza.
- Prima di modificare l'istanza, crea uno snapshot del volume principale.
Completa i seguenti passaggi:
-
Accedi all'istanza con SSH o Gestione sessione.
-
Per verificare che cloud-init è installato, esegui questo comando:
$ cloud-init -vSe il comando restituisce un errore, esegui questo comando per installare un'istanza sulla distribuzione di Linux:
Per istanze basate su Debian
$ sudo apt-get install cloud-initPer istanze basate su RPM
sudo dnf install cloud-initPer istanze Suse
zypper install cloud-init -
Dopo aver verificato l'installazione di cloud-init, continua ad arrestare l'istanza.
**Nota:**Se l'azione Arresta non è disponibile, l'istanza è già arrestata o il suo dispositivo principale è un volume di archivio dell'istanza. -
Genera la chiave pubblica dalla chiave privata per connetterti al nuovo utente.
Nota: devi avere una coppia di chiavi o di una chiave privata per ottenere la chiave pubblica. Per creare una coppia di chiavi, consulta Crea una coppia di chiavi per la tua istanza Amazon EC2. Per la sicurezza SSH, è consigliabile creare coppie di chiavi tramite la console EC2 o uno strumento di terze parti.
Per recuperare la chiave pubblica, esegui questo comando. Se la chiave privata ha una passphrase, inserisci la passphrase quando richiesto.$ ssh-keygen -f <private_key_file> -y -
Inserisci la chiave pubblica nel comando seguente, quindi aggiorna il campo dati utente con questo comando:
Seleziona l'istanza.
Nel pannello di navigazione, scegli Operazioni, quindi scegli Impostazioni dell'istanza.
Scegli Modifica dati utente, quindi incolla lo script nel campo.
Nota: sostituisci il segnaposto username con il nome utente che intendi utilizzare. Per ssh-rsa AB3nzExample, inserisci la tua chiave pubblica. Se utilizzi un'istanza Debian, modifica il valore dei gruppi da wheel a sudo:#cloud-config cloud_final_modules: - [users-groups,always] users: - name:username groups: [ wheel ] shell: /bin/bash sudo: ["ALL=(ALL) NOPASSWD:ALL"] ssh-authorized-keys: - ssh-rsa AB3nzExampleIl comando precedente crea un utente con accesso illimitato. Per bloccare l'accesso sudo per l'utente, imposta il valore di sudo su false. Per ulteriori informazioni, consulta All cloud config examples (Tutti gli esempi di configurazioni cloud) sul sito web cloud-init.
Nota: per impostazione predefinita, le direttive cloud-init vengono eseguite solo all'avvio di un'istanza. Tuttavia, quando si utilizza questo script di dati utente, cloud-init aggiunge la chiave pubblica all'istanza ogni volta che l'istanza si riavvia o viene nuovamente avviata. Se rimuovi lo script di dati utente, viene ripristinata la funzionalità predefinita. -
Scegli Salva.
-
Scegli Operazioni, seleziona Stato dell'istanza, quindi scegli Avvia.
-
Quando l'istanza raggiunge lo stato In esecuzione, accedi come nuovo utente. Il nuovo utente ha lo stesso comportamento predefinito di ec2-user.
Nota: utilizza l'azione API ModifyInstanceAttribute per modificare i dati utente di un'istanza. Crea una policy AWS Identity and Access Management (AWS IAM) per limitare questa azione.
Informazioni correlate
- Argomenti
- Compute
- Lingua
- Italiano
