Salta al contenuto

Come posso utilizzare cloud-init e user data per aggiungere nuovi account utente AWS con accesso SSH alla mia istanza EC2 Linux?

4 minuti di lettura
0

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:

Completa i seguenti passaggi:

  1. Accedi all'istanza con SSH o Gestione sessione.

  2. Per verificare che cloud-init è installato, esegui questo comando:

    $ cloud-init -v

    Se 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-init

    Per istanze basate su RPM

    sudo dnf install cloud-init

    Per istanze Suse

    zypper install cloud-init
  3. 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.

  4. 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
  5. 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 AB3nzExample

    Il 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.

  6. Scegli Salva.

  7. Scegli Operazioni, seleziona Stato dell'istanza, quindi scegli Avvia.

  8. 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

Visualizzazione della coppia di chiavi

Come faccio ad aggiungere nuovi account utente con accesso SSH alla mia istanza Amazon EC2 per Linux?

AWS UFFICIALEAggiornata un anno fa