Warum erhalte ich die Fehlermeldungen UPSTREAM_ERROR, UPSTREAM_NOT_FOUND oder CLIENT_UNAUTHORIZED, wenn ich über die browserbasierte SSH-Konsole auf meine Lightsail-Instance zugreife?

Lesedauer: 8 Minute
0

Ich erhalte die Meldung UPSTREAM_ERROR [515], UPSTREAM_NOT_FOUND [519] oder CLIENT_UNAUTHORIZED [769], wenn ich über die browserbasierte SSH-Konsole eine Verbindung zu meiner Amazon-Lightsail-Instance herstelle. Wie können diese Fehler behoben werden?

Kurzbeschreibung

Wenn Sie eine Fehlermeldung erhalten, wenn Sie eine Verbindung zu Ihrer Lightsail-Instance herstellen und der Fehler sich auf SSH bezieht, wird möglicherweise eine der folgenden Meldungen angezeigt:

  • „Ihre Instance ist auf einen Fehler gestoßen und hat die Verbindung geschlossen. Versuchen Sie es erneut oder wenden Sie sich an den Kundendienst. UPSTREAM_ERROR [515]“
  • „Ein Fehler ist aufgetreten und wir konnten keine Verbindung herstellen oder mit Ihrer Instance in Verbindung bleiben. Wenn diese Instance gerade erst gestartet wurde, versuchen Sie es in ein oder zwei Minuten erneut. UPSTREAM_NOT_FOUND [519]“
  • „Die Anmeldung ist fehlgeschlagen. Wenn diese Instance gerade erst gestartet wurde, versuchen Sie es in ein oder zwei Minuten erneut. CLIENT_UNAUTHORIZED [769]“

Die Fehler UPSTREAM_ERROR [515] und UPSTREAM_NOT_FOUND [519] weisen darauf hin, dass Ihre Lightsail-Instance bei Verwendung von SSH nicht erreicht werden kann. Das Folgende sind häufige Gründe für diese Fehler:

  • Fehler beim Starten von Instances, Fehler bei der Überprüfung des Instancestatus oder Ressourcenüberlastung der Instance.
  • Eine Firewall auf Betriebssystemebene blockiert den Zugriff auf SSH-Ports.
  • Der Standard-SSH-Port (22) wird auf einen anderen geändert.
  • Der SSH-Service ist ausgefallen.

Der Fehler CLIENT_UNAUTHORIZED [769] weist darauf hin, dass in Ihrer Lightsail-Instance ein SSH-Authentifizierungsproblem vorliegt. Folgende sind häufige Gründe für diesen Fehler:

  • Fehlkonfiguration des Lightsail-Systemschlüssels in /etc/ssh/lightsail_instance_ca.pub.
  • Sie haben Ihre Ubuntu-Instance von einer älteren Version auf 20.04 oder höher aktualisiert.

Auflösung

Fehler beim Starten von Instances, Fehler bei der Überprüfung des Instancestatus oder Ressourcenüberlastung auf der Instance

Zeigen Sie die Statusprüfungsmetriken Ihrer Instance an, um festzustellen, ob die Instance die Systemstatusprüfung oder die Instance-Statusprüfung nicht bestanden hat.

Überprüfung des Systemstatus

Wenn die Überprüfung des Systemstatus fehlgeschlagen ist, ist die zugrunde liegende Hardware der Instance ungesund. Um das Problem zu beheben, stoppen und starten Sie die Instance. Dadurch wird die Instance auf fehlerfreie Hardware migriert.

Warnung: Beachten Sie, dass sich die öffentliche IP-Adresse der Instance bei jedem Stopp und Start der Instance ändert. Wenn Sie möchten, dass die IP-Adresse bei jedem Stopp und Start der Instance gleich bleibt, dann fügen Sie eine statische IP-Adresse hinzu.

Überprüfung des Instance-Status

Wenn die Überprüfung des Instancestatus fehlgeschlagen ist, können Probleme auf Betriebssystemebene zu Startfehlern führen. Oder die Ressourcen der Instance, wie CPU oder Speicher, werden möglicherweise überlastet. Schritte zur Fehlerbehebung finden Sie unter Wie kann ich häufig auftretende Probleme beheben, die dazu führen, dass meine Lightsail-Instance nicht reagiert?

Eine Firewall auf Betriebssystemebene blockiert den SSH-Port-Zugriff

Browserbasierte SSH-Zugriff verwendet die interne IP-Adresse von Amazon, um eine Verbindung zu Ihrer Lightsail-Instance herzustellen. Einige Firewalls und Zugriffskontrolldateien auf Betriebssystemebene erlauben den SSH-Zugriff nur auf einen Satz von IP-Adressen und verweigern alle anderen. In diesem Fall erhalten Sie den Fehler UPSTREAM_NOT_FOUND [519] oder UPSTREAM_ERROR [515]. Das gleiche Problem tritt auf, wenn eine Firewall den SSH-Zugriff vollständig blockiert.

Hinweis: Beispiele für Firewalls auf Betriebssystemebene sind Iptables und UFW. Ein Beispiel für eine Kontrolldatei ist /etc/hosts.deny (Hosts Access Control in cPanel-basierten Instances).

Führen Sie einen der folgenden Schritte aus, um dieses Problem zu beheben:

  • Wenn der SSH-Zugriff auf die Instanz über das Terminal oder die PuTTY-Anwendung funktioniert, melden Sie sich bei der Instance an und entfernen Sie die Deny-Regeln aus der Firewall und der Datei /etc/hosts.deny.
  • Wenn Sie eine cPanel-Instance haben, greifen Sie auf die WHM-Konsole zu, um die Firewall-Regeln zu entfernen.
  • Wenn Sie keine Verbindung zur Instance herstellen können, indem Sie SSH vom Terminal oder der PuTTY-Anwendung aus verwenden, deaktivieren Sie die Firewall mithilfe eines Startskripts. Das Startskript kann nur beim Starten einer Instance hinzugefügt werden. Gehen Sie wie folgt vor, um ein Startskript zur Deaktivierung von Firewalls auf Betriebssystemebene, Iptables und UFW zu verwenden:

1.    Öffnen Sie die Amazon-Lightsail-Konsole.

2.    Erstellen Sie einen manuellen Snapshot der Instance.

3.    Wählen Sie auf der Registerkarte Snapshots unter Manuelle Schnappschüsse die drei Punkte neben dem neuen Snapshot aus.

4.    Wählen Sie Neue Instance erstellen aus.

5.    Wählen Sie dieselbe Availability Zone wie die vorherige Instance aus.

6.    Wählen Sie Startskript hinzufügen aus und fügen Sie dann das folgende Skript hinzu.

Hinweis: Das folgende Beispiel deaktiviert die UFW-Firewall, löscht alle iptable-Ketten oder Firewall-Regeln und deaktiviert die Datei /etc/hosts.deny durch Umbenennen.

sudo ufw disable
sudo iptables -F
sudo mv /etc/hosts.deny /etc/hosts.deny_backup
sudo touch /etc/hosts.deny
sudo systemctl enable sshd
sudo systemctl restart sshd

7.    Wählen Sie einen neuen Instanceplan oder verwenden Sie denselben Plan wie die vorherige Instance.

8.    Geben Sie einen Namen für die Instance ein und wählen Sie dann Instance erstellen aus.

Warten Sie nach dem Start der neuen Instance 10 bis 15 Minuten und versuchen Sie dann, über die browserbasierte SSH-Konsole eine Verbindung herzustellen.

Hinweis: Wenn die vorherige Instance eine statische IP-Adresse hatte, dann können Sie sie für die neue Instance verwenden. Trennen Sie die statische IP-Adresse und hängen Sie sie dann über die Registerkarte Netzwerk an die neue Instance an. Weitere Informationen finden Sie unter Statische IP-Adressen in Amazon Lightsail.

Der SSH-Service ist ausgefallen

Wenn der SSH-Service auf der Instance nicht ausgeführt oder aktiv ist, schlägt die SSH-Verbindung fehl und Sie erhalten den Fehler UPSTREAM_NOT_FOUND [519]. Konfigurieren Sie zur Behebung dieses Problems den AWS-Systems-Manager-Session-Manager-Service für Ihre Lightsail-Instance. Greifen Sie nach dem Konfigurieren des Sitzungsmanagers ohne den SSH-Service auf die Instance zu und beheben Sie dann das SSH-Problem.

Zu den grundlegenden Schritten zur Fehlerbehebung bei SSH-Problemen gehören:

  • Überprüfen Sie die SSH-Authentifizierungsprotokolle in der Datei /var/log/auth.log oder /var/log/secure, abhängig von der Betriebssystemverteilung, um die Fehler zu identifizieren.
  • Testen Sie die Syntax der SSH-Konfigurationsdatei und korrigieren Sie dann alle Fehler.
sudo sshd -t
sudo systemctl restart sshd

Fehlkonfiguration des Lightsail-Systemschlüssels /etc/ssh/lightsail_instance_ca.pub

Lightsail verwendet den Systemschlüssel /etc/ssh/lightsail_instance_ca.pub, um den browserbasierten SSH-Zugriff zu aktivieren. Wenn diese Datei fehlt, schlägt die SSH-Authentifizierung fehl und Sie erhalten den Fehler CLIENT_UNAUTHORIZED [769]. Derselbe Fehler tritt auf, wenn der Lightsail-Systemschlüssel nicht im Parameter TrustedUserCAKeys in der SSH-Konfigurationsdatei /etc/ssh/sshd_config angegeben ist.

Wenn die SSH-Verbindung zur Instance über das Terminal oder die PuTTY-Anwendung funktioniert, melden Sie sich bei der Instance an und bestätigen Sie, dass die Datei /etc/ssh/sshd_config existiert und dass sie den ssh-rsa-Schlüssel enthält.

Wenn die Datei fehlt, erstellen Sie die Datei mithilfe der folgenden Schritte neu:

1.    Führen Sie den folgenden Befehl aus und bestätigen Sie, dass Sie den Schlüssel ssh-rsa in der Befehlsausgabe erhalten:

sudo cat /var/lib/cloud/instance/user-data.txt | grep ^ssh-rsa

2.    Wenn der Befehl den Schlüssel ssh-rsa in der Ausgabe zurückgibt, führen Sie die folgenden Befehle aus, um ihn nach /etc/ssh/lightsail_instance_ca.pub zu kopieren:

sudo sh -c "cat /var/lib/cloud/instance/user-data.txt | grep ^ssh-rsa > /etc/ssh/lightsail_instance_ca.pub"
    sudo sh -c "echo >> /etc/ssh/sshd_config" 
    sudo sh -c "echo 'TrustedUserCAKeys /etc/ssh/lightsail_instance_ca.pub' >> /etc/ssh/sshd_config"
    sudo systemctl restart sshd

3.    Wenn Sie aus Schritt 1 keinen ssh-rsa-Schlüssel erhalten oder wenn Sie nicht mit dem Terminal oder der PuTTY-Anwendung SSH an die Instanz können, erstellen Sie einen manuellen Snapshot der Instanz und starten Sie eine neue Instanz mit diesem Snapshot. Der Lightsail-Systemschlüssel wird dem Server beim Start der Instance automatisch hinzugefügt.

Sie haben von einer älteren Ubuntu-Version auf 20.04 oder höher aktualisiert

Für Instances, auf denen Ubuntu 20.04 oder höher ausgeführt wird, müssen Sie den Zertifizierungsstellen (CAs) erlauben, den ssh-rsa-Algorithmus zum Signieren von Zertifikaten zu verwenden. Andernfalls schlägt die Authentifizierung fehl und Sie erhalten den Fehler CLIENT_UNAUTHORIZED [769]. CAs dürfen den ssh-rsa-Algorithmus standardmäßig in Ubuntu-20.04-Instances verwenden. Wenn Sie jedoch Ihre ältere Ubuntu-Version auf 20.04 aktualisieren, müssen Sie die CAs manuell zulassen. Gehen Sie dazu wie folgt vor:

1.    Stellen Sie mithilfe eines SSH-Clients wie dem Terminal oder der PuTTY-Anwendung eine Verbindung zur Instanz her.

2.    Öffnen Sie die SSH-Konfigurationsdatei (/etc/ssh/sshd_config).

3.    Fügen Sie der Datei CA-Parameter hinzu, abhängig von Ihrer Version von Ubuntu:

       Wenn die Betriebssystemversion auf Ubuntu 20.04 aktualisiert wird: Geben Sie die CASignatureAlgorithms-Parameterzeile manuell in die sshd_config-Datei ein:

$ sudo vi /etc/ssh/sshd_config
$ cat /etc/ssh/sshd_config | egrep "CASignature"
CASignatureAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

       Wenn die Betriebssystemversion auf Ubuntu 22.04 aktualisiert wird: Geben Sie die Parameterzeilen CASignatureAlgorithms und PubKeyAcceptedAlgorithms manuell in die Datei sshd_config ein:

$ sudo vi /etc/ssh/sshd_config
$ cat /etc/ssh/sshd_config | egrep "CASignature|PubkeyAccepted"
CASignatureAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa-cert-v01@openssh.com,ssh-rsa

4.    Führen Sie den folgenden Befehl aus, um den Inhalt der sshd-Konfigurationsdatei zu überprüfen:

$ sudo sshd -T
  1.    Führen Sie den folgenden Befehl aus, um den sshd-Service neu zu starten:
$ sudo systemctl restart sshd

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr