Verbindung zu einer Amazon-EC2-Instance mit einem EC2-Instance-Connect-Endpunkt
Sie können EC2-Instance-Connect-Endpunkt verwenden, um eine Verbindung zu einer Amazon-EC2-Instance herzustellen, die SSH oder RDP unterstützt.
Voraussetzungen
-
Sie müssen über die erforderlichen IAM-Berechtigungen verfügen, um einen EC2-Instance-Connect-Endpunkt zu erstellen. Weitere Informationen finden Sie unter Berechtigungen, EC2-Instance-Connect-Endpunkt zu verwenden, um eine Verbindung zu Instances herzustellen.
-
Der EC2-Instance-Connect-Endpunkt muss in einem der folgenden Status sein:
-
create-complete für einen neuen Endpunkt
-
update-in-progress, update-complete oder update-failed für einen vorhandenen Endpunkt, der geändert wird. Wenn ein Endpunkt geändert wird, verwendet er weiterhin seine ursprüngliche Konfiguration, bis sich der Status in update-complete ändert.
Wenn Ihre VPC nicht über einen EC2-Instance-Connect-Endpunkt verfügt, können Sie einen erstellen. Weitere Informationen finden Sie unter Erstellen Sie einen EC2-Instance-Connect-Endpunkt.
-
-
Der IP-Adresstyp des EC2-Instance-Connect-Endpunkts muss mit dem IP-Adresstyp der Instance kompatibel sein. Wenn Ihr Endpunkt-IP-Adresstyp Dual-Stack ist, kann er sowohl für IPv4- als auch für IPv6-Adressen funktionieren.
-
(Linux-Instances) Um die Amazon-EC2-Konsole zum Herstellen einer Verbindung mit Ihrer Instance zu verwenden oder die CLI zum Herstellen einer Verbindung zu verwenden und EC2 Instance Connect den temporären Schlüssel verarbeiten zu lassen, muss EC2 Instance Connect installiert sein. Weitere Informationen finden Sie unter Installieren Sie EC2 Instance Connect.
-
Stellen Sie sicher, dass die Sicherheitsgruppe der Instance eingehenden SSH-Datenverkehr vom EC2-Instance-Connect-Endpunkt zulässt. Weitere Informationen finden Sie unter Ziel-Instance-Sicherheitsgruppenregeln.
Verbindungsoptionen
Verbinden Sie sich mit Ihrer Linux-Instance über die Amazon-EC2-Konsole
Sie können über die Amazon-EC2-Konsole (einen browserbasierten Client) wie folgt Verbindungen mit einer Instance herstellen.
Mit Ihrer Instance über die Amazon-EC2-Konsole verbinden
-
Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/
. -
Wählen Sie im Navigationsbereich Instances aus.
-
Wählen Sie die Instance aus und klicken Sie auf Verbinden.
-
Wählen Sie die Registerkarte EC2 Instance Connect aus.
-
Wählen Sie für Verbindungstyp die Option Mit einer privaten IP verbinden aus.
-
Wählen Sie entweder Private IPv4-Adresse oder IPv6-Adresse. Die Optionen sind auf der Grundlage der IP-Adressen verfügbar, die Ihrer Instance zugewiesen wurden. Wenn eine Option nicht verfügbar ist, ist Ihrer Instance keine IP-Adresse dieses Typs zugewiesen.
-
Wählen Sie für EC2-Instance-Connect-Endpunkt die ID des EC2-Instance-Connect-Endpunkts.
Anmerkung
Der EC2-Instance-Connect-Endpunkt muss mit der IP-Adresse kompatibel sein, die Sie im vorherigen Schritt ausgewählt haben. Wenn Ihr Endpunkt-IP-Adresstyp Dual-Stack ist, kann er sowohl für IPv4- als auch für IPv6-Adressen funktionieren. Weitere Informationen finden Sie unter Erstellen Sie einen EC2-Instance-Connect-Endpunkt.
-
Wenn das AMI, das Sie zum Starten der Instance verwendet haben, einen anderen Benutzernamen als
ec2-userverwendet, geben Sie unter Benutzername den richtigen Benutzernamen ein. -
Geben Sie für Max. Tunneldauer (Sekunden) die maximal zulässige Dauer für die SSH-Verbindung ein.
Die Dauer muss den in der IAM-Richtlinie festgelegten
maxTunnelDuration-Bedingungen entsprechen. Wenn Sie keinen Zugriff zur IAM-Richtlinie haben, wenden Sie sich an Ihren Administrator. -
Wählen Sie Verbinden aus. Dadurch wird ein Terminalfenster für Ihre Instance geöffnet.
Herstellen einer Verbindung zu Ihrer Linux-Instance mit SSH
Sie können SSH verwenden, um eine Verbindung zu Ihrer Linux-Instance herzustellen, und den open-tunnel-Befehl verwenden, um einen privaten Tunnel einzurichten. Sie können open-tunnel im Einzelverbindungsmodus oder im Mehrfachverbindungsmodus verwenden. Sie können Ihre Instance-ID, eine private IPv4- oder eine IPv6-Adresse angeben.
Informationen über die Verwendung der AWS CLI zur Verbindung mit Ihrer Instance über SSH finden Sie unter Verbinden mit Hilfe der AWS CLI.
Im folgenden Beispiel wird OpenSSH
Einzelne -Verbindung
So erlauben Sie nur eine einzige Verbindung zu einer Instance über SSH und den Befehl open-tunnel
Verwenden Sie ssh und den open-tunnel AWS CLI-Befehl wie folgt: Der -o-Proxy-Befehl umfasst den open-tunnel-Befehl, der den privaten Tunnel zur Instance erstellt.
ssh -imy-key-pair.pemec2-user@i-1234567890abcdef0\ -o ProxyCommand='aws ec2-instance-connect open-tunnel --instance-idi-1234567890abcdef0'
Für:
-
-i– Geben Sie das Schlüsselpaar an, das zum Starten der Instance verwendet wurde. -
– Geben Sie den Benutzernamen des AMI an, das zum Starten der Instance verwendet wurde, und die Instance-ID. Für Instances mit einer IPv6-Adresse müssen Sie die IPv6-Adresse anstelle der Instance-ID angeben.ec2-user@i-1234567890abcdef0 -
--instance-id– Geben Sie die ID der Instance, zu der eine Verbindung hergestellt werden soll, an. Alternativ können Sie auch%hangeben, wodurch die Instance-ID des Benutzers extrahiert wird. Ersetzen Sie bei Instances mit einer IPv6-Adresse--instance-iddurchi-1234567890abcdef0--private-ip-address.2001:db8::1234:5678:1.2.3.4
Mehrfachverbindung
Um mehrere Verbindungen zu einer Instance zuzulassen, führen Sie zuerst den open-tunnel AWS CLI-Befehl aus, um auf neue TCP-Verbindungen zu horchen, und verwenden Sie dann ssh, um eine neue TCP-Verbindung und einen privaten Tunnel zu Ihrer Instance zu erstellen.
So erlauben Sie mehrere Verbindungen zu Ihrer Instance mit SSH und dem Befehl open-tunnel
-
Führen Sie den folgenden Befehl aus, um auf Ihrem lokalen Computer auf neue TCP-Verbindungen am angegebenen Port zu horchen.
aws ec2-instance-connect open-tunnel \ --instance-idi-1234567890abcdef0\ --local-port8888Erwartete Ausgabe:
Listening for connections on port 8888. -
Führen Sie in einem neuen Terminalfenster den folgenden
ssh-Befehl aus, um eine neue TCP-Verbindung und einen privaten Tunnel zu Ihrer Instance zu erstellen.ssh -imy-key-pair.pem ec2-user@localhost -p8888Erwartete Ausgabe – Im ersten Terminalfenster sehen Sie Folgendes:
[1] Accepted new tcp connection, opening websocket tunnel.Möglicherweise wird auch Folgendes angezeigt:
[1] Closing tcp connection.
Mithilfe der AWS CLI eine Verbindung zu Ihrer Linux-Instance mit deren Instance-ID herstellen
Wenn Sie nur Ihre Instance-ID kennen, können Sie mit dem AWS CLI-Befehl ec2-instance-connect ssh über einen SSH-Client eine Verbindung zur Instance herstellen. Weitere Informationen finden Sie unter Verbinden mit Hilfe der AWS CLI.
Voraussetzungen
-
Installieren Sie AWS CLI Version 2 und konfigurieren Sie sie mit Ihren Anmeldeinformationen. Weitere Informationen finden Sie unter Installieren oder Aktualisieren auf die neueste Version von AWS CLI und Konfiguration der AWS CLI im AWS Command Line Interface-Benutzerhandbuch.
-
Alternativ können Sie AWS CloudShell öffnen und AWS CLI-Befehle in der vorauthentifizierten Shell ausführen.
So stellen Sie eine Verbindung zu einer Instance über die Instance-ID und einen EC2-Instance-Connect-Endpunkt her
Wenn Sie nur die Instance-ID kennen, verwenden Sie den CLI-Befehl ec2-instance-connect ssh und geben Sie den ssh-Befehl, die Instance-ID und den --connection-type-Parameter mit dem Wert eice an, um einen EC2-Instance-Connect-Endpunkt zu verwenden. Wenn die Instance nur über eine IPv6-Adresse verfügt, müssen Sie auch den Parameter --instance-ip mit der IPv6-Adresse angeben.
-
Wenn die Instance eine private IPv4-Adresse hat (sie kann auch eine IPv6-Adresse haben), verwenden Sie den folgenden Befehl und die folgenden Parameter:
aws ec2-instance-connect ssh \ --instance-idi-1234567890example\ --os-userec2-user\ --connection-type eice -
Wenn die Instance nur über eine IPv6-Adresse verfügt, müssen Sie den Parameter
--instance-ipmit der IPv6-Adresse angeben.aws ec2-instance-connect ssh \ --instance-idi-1234567890example\ --instance-ip2001:db8::1234:5678:1.2.3.4\ --os-userec2-user\ --connection-type eice
Tipp
Wenn Sie bei eine Fehlermeldung erhalten, stellen Sie sicher, dass Sie AWS CLI Version 2 verwenden. Der Parameter ssh ist nur in AWS CLI Version 2 verfügbar. Weitere Informationen zu finden Sie unter Über AWS CLI Version 2 im AWS Command Line Interface-Benutzerhandbuch.
Herstellen einer Verbindung mit Ihrer Windows-Instance mithilfe von RDP
Sie können Remote Desktop Protocol (RDP) über den EC2-Instance-Connect-Endpunkt verwenden, um eine Verbindung zu einer Windows-Instance ohne öffentliche IPv4-Adresse oder öffentlichen DNS-Namen herzustellen.
Verwenden Sie einen RDP Client, um sich mit Ihrer Windows-Instance zu verbinden.
-
Führen Sie die Schritte 1–8 unter Herstellen einer Verbindung mit Ihrer Windows-Instance über RDP aus. Nachdem Sie die RDP-Desktop-Datei in Schritt 8 heruntergeladen haben, erhalten Sie die Meldung Verbindung nicht möglich. Dies ist zu erwarten, da Ihre Instance keine öffentliche IP-Adresse hat.
-
Führen Sie den folgenden Befehl aus, um einen privaten Tunnel zu der VPC einzurichten, in der sich die Instance befindet.
--remote-portmuss3389sein, weil RDP standardmäßig Port 3389 verwendet.aws ec2-instance-connect open-tunnel \ --instance-idi-1234567890abcdef0\ --remote-port 3389 \ --local-portany-port -
Suchen Sie in Ihrem Downloads-Ordner nach der RDP-Desktop-Datei, die Sie heruntergeladen haben, und ziehen Sie sie in das RDP-Clientfenster.
-
Klicken Sie mit der rechten Maustaste auf die RDP-Datei und wählen Sie Bearbeiten aus.
-
Geben Sie im Fenster PC bearbeiten als PC-Name (die Instance, zu der eine Verbindung hergestellt werden soll)
localhost:ein, wobeilocal-portden gleichen Wert wie in Schritt 2 verwendet, und wählen Sie dann Speichern aus.local-portBeachten Sie, dass der folgende Screenshot des Fensters PC bearbeiten von Microsoft Remote Desktop auf einem Mac stammt. Wenn Sie einen Windows-Client verwenden, sieht das Fenster eventuell anders aus.
-
Klicken Sie im RDP-Client mit der rechten Maustaste auf den PC (den Sie gerade konfiguriert haben) und wählen Sie Verbinden, um eine Verbindung zu Ihrer Instance herzustellen.
-
Geben Sie an der Eingabeaufforderung das unverschlüsselte Passwort für das Administratorkonto ein.
Fehlerbehebung
Nutzen Sie die folgenden Informationen, um Probleme zu diagnostizieren und zu beheben, die auftreten können, wenn EC2-Instance-Connect-Endpunkt zum Herstellen von Verbindungen mit einer Instance verwendet wird.
Kann nicht zu Ihrer Instance verbinden
Nachfolgend finden Sie die häufigsten Gründe, warum Sie möglicherweise keine Verbindung zu Ihrer Instance herstellen können.
-
Sicherheitsgruppen – Überprüfen Sie die Sicherheitsgruppen, die dem EC2-Instance-Connect-Endpunkt und Ihrer Instance zugewiesen sind. Weitere Informationen zu Sicherheitsgruppenregeln finden Sie unter Sicherheitsgruppen für EC2-Instance-Connect-Endpunkt.
-
Instance-Status – Stellen Sie sicher, dass sich Ihre Instance im
running-Status befindet. -
Schlüsselpaar – Wenn der Befehl, den Sie zum Herstellen einer Verbindung verwenden, einen privaten Schlüssel erfordert, stellen Sie sicher, dass Ihre Instance über einen öffentlichen Schlüssel verfügt und dass Sie über den entsprechenden privaten Schlüssel verfügen.
-
IAM-Berechtigungen – Stellen Sie sicher, dass Sie über die erforderlichen IAM-Berechtigungen verfügen. Weitere Informationen finden Sie unter IAM-Berechtigungen für die Verwendung des EC2-Instance-Connect-Endpunkts erteilen.
Weitere Tipps zur Fehlerbehebung für Linux-Instances finden Sie unter Fehlersuche bei Verbindungsproblemen mit Ihrer Amazon-EC2-Linux-Instance. Weitere Tipps zur Fehlerbehebung für Windows-Instances finden Sie unter Verbindungsprobleme mit Ihrer Amazon-EC2-Windows-Instance beheben.
ErrorCode: AccessDeniedException
Wenn Sie einen AccessDeniedException-Fehler erhalten und die maxTunnelDuration-Bedingung in der IAM-Richtlinie angegeben ist, geben Sie den --max-tunnel-duration-Parameter unbedingt an, wenn Sie eine Verbindung zu einer Instance herstellen. Weitere Informationen zu Parametern finden Sie unter open-tunnel in der AWS CLI- Befehlsreferenz.