Ist es möglich, mehr als einen privaten Schlüssel für SSH in einer EC2-Instanz zu erstellen? Was ist die allgemeine Best Practice dafür? Wir haben mehrere Benutzer, die SSH auf den Servern benötigen, und die Verteilung eines Schlüssels funktioniert einfach nicht gut. Dies ermöglicht es uns nicht, Benutzer von SSH auf dem Server zu entfernen, es sei denn, wir ändern den Schlüssel und verteilen ihn neu.
amazon-ec2
amazon-web-services
einfallsreich
quelle
quelle
Antworten:
Absolut; Sie platzieren einfach alle relevanten öffentlichen Schlüssel im Bild und Sie sollten sofort loslegen. Ich bevorzuge die Verwendung eines Konfigurationsverwaltungssystems zur Verwaltung von SSH-Schlüsseln. Auf diese Weise ist es ziemlich trivial, den Zugriff eines Benutzers auch auf laufenden Systemen zu widerrufen. Es gibt auch weitaus mehr ... sagen wir "einfallsreiche" ... Möglichkeiten, dies zu handhaben, z. B. das Speichern aller Ihrer SSH-Schlüssel in LDAP, die SSH-Schlüssel wie alle anderen Anmeldeinformationen zentralisieren.
quelle
Sie können auch Standard-SSH-Mechanismen verwenden. Der beste Ansatz wäre, wenn der Benutzer auf seinem Computer ausgeführt wird
ssh-keygen
, um sein Schlüsselpaar zu generieren. Dann senden sie Ihnen~/.ssh/id_rsa.pub
(oder id_dsa.pub, je nach gewähltem Algorithmus) und Sie fügen den Inhalt.ssh/authorized_keys
dem Zielhost im Home-Verzeichnis des Benutzerkontos hinzu, auf das sie zugreifen sollen. Die Datei kann mehr als einen Schlüssel enthalten. Eine pro Zeile. Und das ist alles! Der gleiche öffentliche Schlüssel (id_rsa.pub) kann auf einer beliebigen Anzahl von Hosts verwendet werden - er identifiziert immer den Benutzer.Sie können es auch andersherum tun - Sie führen den ssh-keygen aus und senden ~ / .ssh / id_rsa (oder id_dsa) an den Benutzer. Und der Benutzer speichert die Datei in ~ / .ssh / id_rsa. Denken Sie nur daran, die Berechtigungen auf 600 (-rw -------) dieser Datei zu ändern, da ssh sie sonst nicht akzeptiert. Dies ist offensichtlich weniger sicher, da der private Schlüssel wahrscheinlich über E-Mail verteilt wird.
Dies kann auch in PuTTY mit PuTTYgen erfolgen.
quelle
Ein einfacher Weg ist wie unten gezeigt.
Für Linux / Mac-Benutzer:
Verwenden Sie den folgenden Befehl, um öffentliche und private Schlüssel zu erstellen:
$ ssh-keygen -t rsa -b 4096
Laden Sie den öffentlichen Schlüssel in einen Ordner in Ihrem S3-Bucket hoch. Zum Beispiel: S3> MyBucket> Schlüsselpaar
Speichern und sichern Sie Ihren privaten Schlüssel.
Für Windows-Benutzer:
Die folgenden Schritte sind beim Start eines Linux AMI wichtig.
Stellen Sie sicher, dass für die IAM-Rolle eine Rolle mit der AmazonS3FullAccess-Richtlinie erstellt wurde. Dadurch kann die Instanz eine Rolle für den Zugriff auf die S3-Buckets übernehmen. Dies ist erforderlich, um die öffentlichen Schlüssel aus S3 zu lesen und in das Benutzerprofil zu kopieren
Fügen Sie im Abschnitt Benutzerdaten unter Instanzdetails konfigurieren> Erweiterte Details (als Text) den folgenden Code hinzu:
Dieses Setup erstellt User1 und User2 und fügt sie sudo - Benutzer. Der Befehl aws s3 cp kopiert die öffentlichen Schlüssel des Benutzers aus dem S3-Ordner in seinen
.ssh/authorized_keys path
. Der letzte Abschnitt besteht darin, Befehle als Administrator auszuführen, ohne Kennwörter zu benötigen.Es gibt viele Sicherheitsverbesserungen, die hier empfohlen werden können. Obwohl dies in diesem Beispiel nicht explizit verwendet wird, können nur wenige Dinge hervorgehoben werden, wenn der S3-Bucket-Zugriff auf einen bestimmten Bucket beschränkt wird und die Sicherheitsauswirkungen der Deaktivierung der Kennwortverwendung in sudo bekannt sind. Verwenden Sie sie mit Bedacht auf Ihre speziellen Bedürfnisse.
quelle