Direkt zum Inhalt

Wie verwende ich cloud-init und Benutzerdaten, um neue AWS-Benutzerkonten mit SSH-Zugriff zu meiner EC2-Linux-Instance hinzuzufügen?

Lesedauer: 4 Minute
0

Ich möchte zusätzliche Benutzer erstellen, die mit SSH eine Verbindung zu meiner Amazon Elastic Compute Cloud (Amazon EC2)-Linux-Instance herstellen können.

Kurzbeschreibung

Beziehe den Benutzerdatenbefehl mit ein, der die folgenden Aufgaben erfüllt:

  • Erstellt neue Benutzer.
  • Gewährt Benutzern Sudo-Berechtigungen.
  • Hängt den öffentlichen SSH-Schlüssel an die Datei authorized_keys an.

Lösung

Wichtig: Bevor du eine Instance änderst, überprüfe Folgendes:

Führe die folgenden Schritte aus:

  1. Melde dich mit SSH oder Session Manager bei der Instance an.

  2. Führe den folgenden Befehl aus, um zu bestätigen, dass cloud-init installiert ist:

    $ cloud-init -v

    Wenn der Befehl einen Fehler zurückgibt, führe den folgenden Befehl aus, um eine Instance auf der Linux-Distribution zu installieren:

    Für Debian-basierte Instances

    $ sudo apt-get install cloud-init

    Für RPM-basierte Instances

    sudo dnf install cloud-init

    Für Suse-Instances

    zypper install cloud-init
  3. Nachdem du dich von der Installation von cloud-init vergewissert hast, fahre mit dem Anhalten der Instance fort.
    **Hinweis:**Wenn die Aktion Anhalten nicht verfügbar ist, ist die Instance entweder bereits angehalten oder ihr Stammgerät ist ein Instance-Speicher-Volume.

  4. Generiere den öffentlichen Schlüssel aus dem privaten Schlüssel, um eine Verbindung zum/zur neuen Benutzer:in herzustellen.
    Hinweis: Du benötigest ein Schlüsselpaar oder einen privaten Schlüssel, um den öffentlichen Schlüssel zu erhalten. Informationen zum Erstellen eines Schlüsselpaars findest du unter Erstellen eines Schlüsselpaars für die Amazon-EC2-Instance. Für die SSH-Sicherheit empfiehlt es sich, dass du Schlüsselpaare über die EC2-Konsole oder ein Drittanbieter-Tool erstellst.
    Führe den folgenden Befehl aus, um den öffentlichen Schlüssel abzurufen. Wenn der private Schlüssel eine Passphrase hat, gib die Passphrase ein, wenn du dazu aufgefordert wirst.

    $ ssh-keygen -f <private_key_file> -y
  5. Gib den öffentlichen Schlüssel in den folgenden Befehl ein und aktualisiere dann das Benutzerdatenfeld mit diesem Befehl:
    Wähle die Instance aus.
    Wähle im Navigationsbereich Aktionen und dann Instance-Einstellungen aus.
    Wähle Benutzerdaten bearbeiten und füge dann das Skript in das Feld ein.
    Hinweis: Ersetze den Platzhalter username durch den Benutzernamen, den du verwenden möchtest. Gib für ssh-rsa AB3nzExample den öffentlichen Schlüssel ein. Wenn du eine Debian-Instance verwendest, ändere den Gruppenwert von wheel auf 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

    Der vorherige Befehl erstellt Benutzer mit uneingeschränktem Zugriff. Um den Sudo-Zugriff für Benutzer zu blockieren, setze den Wert von **sudo ** auf false. Weitere Informationen findest du unter Cloud config examples (Cloud-Konfigurationsbeispiele) auf der cloud-init-Website.
    Hinweis: Standardmäßig werden cloud-init-Verzeichnisse nur ausgeführt, wenn eine Instance gestartet wird. Wenn du jedoch dieses Benutzerdatenskript verwendest, fügt cloud-init der Instance den öffentlichen Schlüssel jedes Mal hinzu, wenn die Instance neu gebootet oder neu gestartet wird. Wenn du das Benutzerdatenskript entfernst, wird die Standardfunktionalität wiederhergestellt.

  6. Wähle Speichern aus.

  7. Wähle Aktionen, dann Instance-Status und anschließend Start aus.

  8. Wenn die Instance den Status wird ausgeführt erreicht, melde dich als neue(r) Benutzer:in an. Neue Benutzer haben das gleiche Standardverhalten wie ec2-Benutzer.
    Hinweis: Verwende die API-Aktion ModifyInstanceAttribute, um die Benutzerdaten einer Instance zu ändern. Erstelle eine AWS Identity and Access Management (IAM)-Richtlinie, um diese Aktion einzuschränken.

Ähnliche Informationen

Anzeigen des Schlüsselpaars

Wie füge ich meiner Amazon-EC2-Linux-Instance neue Benutzerkonten mit SSH-Zugriff hinzu?

AWS OFFICIALAktualisiert vor einem Jahr