Warum erhalte ich Fehler, wenn ich die browserbasierte SSH-Konsole verwende, um auf meine Lightsail-Instance zuzugreifen?

Lesedauer: 7 Minute
0

Ich erhalte die Meldung UPSTREAM_ERROR [515], UPSTREAM_NOT_FOUND [519] oder CLIENT_UNAUTHORIZED [769], wenn ich die browserbasierte SSH-Konsole verwende, um eine Verbindung zu meiner Amazon Lightsail-Instance herzustellen.

Kurzbeschreibung

Wenn Sie SSH-bezogene Fehler erhalten, wenn Sie eine Verbindung zu Ihrer Lightsail-Instance herstellen, werden möglicherweise die folgenden Meldungen angezeigt:

  • "Your instance encountered an error and has closed the connection. Try again or contact customer support. UPSTREAM_ERROR [515]"
  • "An error occurred and we were unable to connect or stay connected to your instance. An error occurred and we were unable to connect or stay connected to your instance. UPSTREAM_NOT_FOUND [519]"
  • "Login failed. An error occurred and we were unable to connect or stay connected to your instance. CLIENT_UNAUTHORIZED [769]"

Die Fehler UPSTREAM\ _ERROR\ [515] und UPSTREAM\ _NOT\ _FOUND\ [519] weisen darauf hin, dass Sie Ihre Lightsail-Instance nicht über SSH erreichen können. Die folgenden Gründe sind häufig für diese Fehler aufgeführt:

  • Es gibt Probleme mit der Instance, z. B. einen Startfehler, einen Fehler bei der Statusüberprüfung oder eine Überlastung der Ressourcen.
  • Eine Firewall auf Betriebssystemebene blockiert den SSH-Port-Zugriff.
  • Der SSH-Port (22) ist nicht der Standard.
  • Der SSH-Dienst 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:

  • Sie haben den Lightsail-Systemschlüssel /etc/ssh/lightsail\ _instance\ _ca.pub falsch konfiguriert.
  • Sie haben Ihre Ubuntu-Instanceversion auf 20.04 oder höher aktualisiert.

Behebung

Es liegt ein Instance-Startfehler, ein Fehler bei der Instance-Statusüberprüfung oder eine Ressourcenüberlastung vor

Sehen Sie sich Ihre Instance-Metriken an, um festzustellen, ob die Instance die System- oder Instance-Statusprüfung nicht bestanden hat.

Systemstatusüberprüfungen

Wenn die Systemstatusüberprüfung fehlgeschlagen ist, ist die der Instance zugrunde liegende Hardware fehlerhaft. Um das Problem zu beheben, beenden Sie die Instance und starten Sie sie dann, um die Instance auf eine fehlerfreie Hardware zu migrieren.

**Warnung:**Die öffentliche IP-Adresse der Instance ändert sich bei jedem Stopp und Start der Instance. Wenn Sie nicht möchten, dass sich die öffentliche IP-Adresse bei jedem Stopp und Start ändert, fügen Sie eine statische IP-Adresse hinzu, bevor Sie die Instance beenden.

Überprüfung des Instancestatus

Wenn die Instancestatusüberprüfung fehlgeschlagen ist, kann ein Problem auf Betriebssystemebene zu Startfehlern führen. Oder die Ressourcen der Instance, wie CPU oder Arbeitsspeicher, sind 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

Der browserbasierte SSH-Zugriff verwendet die interne Amazon-IP-Adresse, um eine Verbindung zu Ihrer Lightsail-Instance herzustellen. Einige Firewalls und Zugriffskontrolldateien auf Betriebssystemebene ermöglichen den SSH-Zugriff auf nur einen Satz von IP-Adressen. 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, die die Zugriffskontrolle in cPanel-basierten Instanceen hostet.

Gehen Sie wie folgt vor, um dieses Problem zu beheben:

  • Wenn Sie SSH verwenden können, um vom Terminal oder der PuTTY-Anwendung aus auf die Instance zuzugreifen, melden Sie sich bei der Instance an. Entfernen Sie die Ablehnungsregeln aus der Firewall und der Datei /etc/hosts.deny.
  • Wenn Sie eine cPanel-Instance haben, greifen Sie auf die WHM-Konsole zu, um die Firewallregeln zu entfernen.
  • Wenn Sie SSH nicht verwenden können, um vom Terminal oder der PuTTY-Anwendung aus eine Verbindung zur Instance herzustellen, verwenden Sie ein Startskript, um die Firewall zu deaktivieren. Sie können das Startskript nur hinzufügen, wenn Sie eine Instance starten.

Gehen Sie wie folgt vor, um Firewalls, Iptables und UFW auf Betriebssystemebene mithilfe eines Startskripts zu deaktivieren:

  1. Öffnen Sie die Amazon Lightsail-Konsole.

  2. Erstellen Sie einen manuellen Snapshot der Instance.

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

  4. Wählen Sie Neue Instance erstellen.

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

  6. Wählen Sie Startskript hinzufügen und fügen Sie dann das folgende Skript hinzu.
    **Hinweis:Das folgende Beispielskript deaktiviert die UFW-Firewall, leert alle Iptable-Ketten oder Firewallregeln und benennt die Datei ** /etc/hosts.deny um, um sie zu deaktivieren:

    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 Create instance aus.

Warten Sie nach dem Start der neuen Instance 10-15 Minuten und versuchen Sie dann mithilfe der browserbasierten SSH-Konsole, eine Verbindung zur Instance herzustellen.

**Hinweis:**Wenn die vorherige Instance eine statische IP-Adresse hatte, verwenden Sie die statische IP-Adresse für die neue Instance. Trennen Sie auf der Registerkarte Netzwerk in der Lightsail-Konsole die statische IP-Adresse und hängen Sie sie dann an die neue Instance an.

Der SSH-Dienst ist ausgefallen

Wenn der SSH-Dienst auf der Instance nicht ausgeführt oder aktiv ist, schlägt die SSH-Verbindung fehl und Sie erhalten den UPSTREAM\ _NOT\ _FOUND\ [519] -Fehler. Um dieses Problem zu beheben, konfigurieren Sie den AWS Systems Manager Session Manager für Ihre Lightsail-Instance. Greifen Sie dann ohne den SSH-Dienst auf die Instance zu, um das SSH-Problem zu lösen.

Zu den grundlegenden Schritten zur Behebung von SSH-Problemen gehören:

  • Überprüfen Sie je nach Betriebssystemverteilung die SSH-Authentifizierungsprotokolle in der Datei /var/log/auth.log oder ** /var/log/secure**, 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

Sie haben den Lightsail-Systemschlüssel /etc/ssh/lightsail\ _instance\ _ca.pub falsch konfiguriert

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 Sie SSH verwenden können, um über das Terminal oder die PuTTY-Anwendung eine Verbindung zur Instance herzustellen, melden Sie sich bei der Instance an. Bestätigen Sie, dass die Datei /etc/ssh/sshd\ _config existiert und dass sie den Schlüssel ssh-rsa enthält.

Wenn die Datei fehlt, führen Sie die folgenden Schritte aus, um die Datei neu zu erstellen:

  1. Führen Sie den folgenden Befehl aus, um zu bestätigen, 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 keinen ssh-rsa-Schlüssel erhalten oder SSH nicht verwenden können, um eine Verbindung zur Instance herzustellen, erstellen Sie einen Snapshot der Instance. Wenn Sie eine neue Instance vom Snapshot aus starten, wird der Lightsail-Systemschlüssel beim Start der Instance automatisch zum Server hinzugefügt.

Sie haben Ihre Ubuntu-Instanceversion auf 20.04 oder höher aktualisiert

Für Instanceen, 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]. In der Ubuntu-Instanceversion 20.04 oder höher dürfen CAs standardmäßig den ssh-rsa-Algorithmus verwenden. Wenn Sie jedoch Ihre frühere Ubuntu-Instanceversion auf 20.04 aktualisieren, müssen Sie die CAs manuell zulassen.

Gehen Sie wie folgt vor, um die CAs manuell zuzulassen:

  1. Verwenden Sie einen SSH-Client, z. B. das Terminal oder die PuTTY-Anwendung, um eine Verbindung zur Instance herzustellen.

  2. Öffnen Sie die SSH-Konfigurationsdatei (/etc/ssh/sshd\ _config).

  3. Fügen Sie der Datei für Ihre Ubuntu-Instanceversion CA-Parameter hinzu:

    Die Version der Ubuntu-Instance wurde auf 20.04 aktualisiert.

    Geben Sie die Parameterzeile CASignatureAlgorithms manuell in die Datei sshd\ _config 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

    **Die Version der Ubuntu-Instance wurde auf 22.04 aktualisiert **

    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
  5. Führen Sie den folgenden Befehl aus, um den sshd-Dienst neu zu starten:

    $ sudo systemctl restart sshd
AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr