AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
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
