Wie verwende ich einen Bastion-Host, um eine sichere Verbindung zu meiner Amazon EC2-Linux-Instance in einem privaten Subnetz herzustellen?
Ich möchte einen Bastion-Host verwenden, um eine Verbindung zu meiner Amazon Elastic Compute Cloud (Amazon EC2)-Linux-Instance herzustellen, die in einem privaten Subnetz ausgeführt wird.
Kurzbeschreibung
EC2-Linux-Instances verwenden standardmäßig SSH-Schlüsselpaar-Dateien anstelle von SSH-Benutzernamen und Passwörtern als Authentifizierungsmethode. Um eine Verbindung über einen Bastion-Host herzustellen, verwende ssh-agent-Forwarding auf dem Client. Der ssh-agent verbindet einen Administrator von der Bastion aus mit einer anderen Instance, ohne dass ein privater Schlüssel von der Bastion verwendet werden muss.
Standardmäßig enthalten die meisten Linux- und macOS-Distributionen das Paket openssh-clients, das ssh-agent enthält. Verwende bei Windows-Distributionen PuTTY, um eine Verbindung zu Linux-Instances herzustellen, und Pageant, um private Schlüssel zu verwalten. Nachdem du Pageant installiert hast, kannst du die Agent-Forwarding-Option in PuTTY verwenden, um eine Verbindung zu Instances in privaten Subnetzen herzustellen.
Wichtig: Um eine sichere Umgebung aufrechtzuerhalten, speichere niemals private Schlüssel auf dem Bastion-Host.
Lösung
Hinweis: Der ssh-agent wird im Arbeitsspeicher ausgeführt. Daher musst du die folgenden Schritte jedes Mal wiederholen, wenn du eine neue Terminalsitzung öffnest oder deinen Computer neu startest.
Voraussetzungen: Stelle sicher, dass deine Konfiguration die folgenden Einstellungen aufweist:
- Der Bastion-Host befindet sich im öffentlichen Subnetz der Virtual Private Cloud (VPC).
- Die Sicherheitsgruppe der Instance im privaten Subnetz erlaubt SSH-Verbindungen nur vom Bastion-Host.
- Konfiguriere die Sicherheitsgruppe des Bastion-Hosts so, dass SSH-Verbindungen über Port TCP/22 nur von bekannten und vertrauenswürdigen IP-Adressen zugelassen werden.
ssh-agent-Forwarding auf einem macOS- oder Linux-Client konfigurieren
Führe die folgenden Schritte aus:
-
Führe den folgenden Befehl aus, um den ssh-agent im Hintergrund zu starten:
eval $(ssh-agent) -
Führe den folgenden Befehl aus, um den SSH-Schlüssel zum ssh-agent hinzuzufügen:
ssh-add "/path/to/key.pem"Hinweis: Ersetze path/to/key durch den Pfad zur PEM-Datei auf deinem lokalen Computer. Der ssh-agent speichert deinen SSH-Schlüssel im Arbeitsspeicher.
-
Führe den folgenden Befehl aus, um zu überprüfen, ob der ssh-agent den Schlüssel gespeichert hat:
ssh-add -lHinweis: Stelle sicher, dass der Schlüssel in der Ausgabe angezeigt wird.
Beispielausgabe:# 2048 SHA256:abc123... /home/user/.ssh/my-key.pem (RSA) -
Führe den folgenden Befehl aus, um mit aktiviertem ssh-agent-Forwarding eine Verbindung zum Bastion-Host herzustellen:
ssh -A User@Bastion_Host_IP_AddressHinweis: Ersetze User durch deinen Benutzernamen und Bastion_Host_IP_address durch die IP-Adresse deines Bastion-Hosts. Den Standardbenutzernamen für dein Amazon Machine Image (AMI) findest du unter Standardbenutzernamen. Um ssh-Forwarding zu verwenden, verwende das Flag -A anstelle des Flags -i. Mit ssh-agent verwendet SSH automatisch die Schlüssel, die in den Arbeitsspeicher geladen sind.
-
Führe den folgenden Befehl aus, um eine Verbindung zur privaten Linux-Instance herzustellen:
ssh User@Private_instance_IP_addressHinweis: Ersetze User durch deinen Benutzernamen und Private_instance_IP_address durch die IP-Adresse deiner Instance.
Agent-Forwarding auf einem Windows-Client konfigurieren
Führe die folgenden Schritte aus:
- Lade PuTTY, Pageant und PuTTYgen herunter und installiere sie. Informationen zum Herunterladen der Tools findest du auf der PuTTY-Website unter PuTTY herunterladen.
- Um PuTTY zum Herstellen einer Verbindung mit deiner Instance zu verwenden, verwende PuTTYgen, um deinen privaten Schlüssel vom PEM-Format in das PuTTY-Format zu konvertieren.
Hinweis: PuTTY kann das PEM-Format für SSH-Schlüssel nicht verwenden. - Wähle das Menü Start aus und öffne dann Pageant.
Hinweis: Standardmäßig wird Pageant minimiert im Infobereich geöffnet. Wenn das Pageant-Symbol nicht im Infobereich angezeigt wird, füge es über die Taskleisteneinstellungen hinzu. Anweisungen findest du auf der Microsoft-Website unter Taskleiste in Windows anpassen. - Um deine SSH-Schlüssel hinzuzufügen, öffne das Kontextmenü (Rechtsklick) für das Pageant-Symbol und wähle dann Schlüssel hinzufügen aus. Navigiere dann zu deinem privaten Schlüssel.
Hinweis: Um den hinzugefügten Schlüssel anzuzeigen, öffne das Kontextmenü (Rechtsklick) für das Pageant-Symbol und wähle dann Schlüssel anzeigen aus. - Wähle das Menü Start aus und öffne dann Alle Programme.
- Wähle PuTTY und dann PuTTY aus.
- Wähle unter Kategorie die Option Sitzung aus.
- Gib für Hostname user-name@instance-public-dns ein, um eine Verbindung zum öffentlichen DNS-Namen deiner Instance herzustellen. Oder gib user-name@instance-IPv4-address ein, um eine Verbindung zur IPv4-Adresse deiner Instance herzustellen.
Hinweis: Ersetze user-name durch deinen Benutzernamen, instance-public-dns durch den öffentlichen DNS-Namen deiner Instance und instance-IPv4-address durch die IPv4-Adresse deiner Instance. - Konfiguriere die Werte für Verbindungstyp und SSH entsprechend deinen Anforderungen. Gib für Port den Wert 22 ein.
- Erweitere unter Kategorie den Abschnitt Verbindung.
- Wähle SSH und dann Auth aus.
- Wähle Agent-Forwarding zulassen aus.
- Wähle Öffnen aus.
- Führe den folgenden Befehl aus, um eine Verbindung zur Instance herzustellen:
ssh User@Private_instance_IP_address
Hinweis: Ersetze User durch deinen Benutzernamen und Private_instance_IP_address durch die IP-Adresse deiner Instance.
- Themen
- Compute
- Tags
- LinuxAmazon EC2
- Sprache
- Deutsch
