Perché ricevo gli errori UPSTREAM_ERROR, UPSTREAM_NOT_FOUND o CLIENT_UNAUTHORIZED quando accedo alla mia istanza Lightsail utilizzando la console SSH basata sul browser?

8 minuti di lettura
0

Ricevo un messaggioUPSTREAM_ERROR [515], UPSTREAM_NOT_FOUND [519] o CLIENT_UNAUTHORIZED [769] quando mi connetto alla mia istanza Amazon Lightsail utilizzando la console SSH basata su browser. Come posso risolvere questi errori?

Breve descrizione

Se ricevi un errore quando ti connetti alla tua istanza Lightsail e l'errore si riferisce a SSH, potresti visualizzare uno dei seguenti messaggi:

  • "L'istanza ha riscontrato un errore e ha chiuso la connessione. Riprova o contatta l'assistenza clienti. UPSTREAM_ERROR [515]"
  • "Si è verificato un errore e non siamo riusciti a connetterci o rimanere connessi alla tua istanza. Se questa istanza è appena stata avviata, riprova tra uno o due minuti. UPSTREAM_NOT_FOUND [519]"
  • "Accesso non riuscito. Se questa istanza è appena stata avviata, riprova tra uno o due minuti. CLIENT_UNAUTHORIZED [769]"

Gli errori UPSTREAM_ERROR [515] e UPSTREAM_NOT_FOUND [519] indicano che l'istanza Lightsail non può essere raggiunta quando utilizzi SSH. Di seguito sono riportati i motivi più comuni di questi errori:

  • Errori di avvio dell'istanza, errori di controllo dello stato delle istanze o utilizzo eccessivo delle risorse sull'istanza.
  • Un firewall a livello di sistema operativo blocca l'accesso alla porta SSH.
  • La porta SSH di default (22) viene modificata in un'altra.
  • Il servizio SSH è inattivo.

L'errore CLIENT_UNAUTHORIZED [769] indica che si è verificato un problema di autenticazione SSH nell'istanza Lightsail. Di seguito sono riportati i motivi più comuni di questo errore:

  • Configurazione errata della chiave di sistema Lightsail in /etc/ssh/lightsail_instance_ca.pub.
  • Hai aggiornato l'istanza di Ubuntu da una versione precedente alla 20.04 o successiva.

Risoluzione

Errori di avvio dell'istanza, errori di controllo dello stato delle istanze o utilizzo eccessivo delle risorse sull'istanza

Visualizza i parametri di controllo dello stato dell'istanza per determinare se l'istanza non ha superato il controllo dello stato del sistema o il controllo dello stato dell'istanza.

Controllo dello stato del sistema

Se il controllo dello stato del sistema non è riuscito, l'hardware sottostante dell'istanza non è integro. Per risolvere il problema, arresta e quindi avvia l'istanza. In questo modo l'istanza viene migrata su hardware integro.

Attenzione: considera che l'indirizzo IP pubblico dell'istanza cambia a ogni arresto e avvio dell'istanza. Se desideri che l'indirizzo IP rimanga lo stesso a ogni arresto e avvio dell'istanza, allega un indirizzo IP statico.

Verifica dello stato dell'istanza

Se il controllo dello stato dell'istanza non è riuscito, un problema a livello di sistema operativo potrebbe causare errori di avvio. In alternativa, le risorse dell'istanza, ad esempio CPU o memoria, potrebbero essere sovrautilizzate. Per la procedura di risoluzione dei problemi, consulta Come posso risolvere i problemi comuni che non permettono alla mia istanza Lightsail di rispondere?

Un firewall a livello di sistema operativo blocca l'accesso alla porta SSH

L'accesso SSH basato su browser utilizza l'indirizzo IP interno di Amazon per connettersi alla tua istanza Lightsail. Alcuni firewall a livello di sistema operativo e file di controllo degli accessi consentono l'accesso SSH solo a un set di indirizzi IP e negano tutti gli altri. In questo caso, viene visualizzato l'errore UPSTREAM_NOT_FOUND [519] o UPSTREAM_ERROR [515]. Lo stesso problema si verifica se il firewall blocca completamente l'accesso SSH.

Nota: esempi di firewall a livello di sistema operativo includono Iptables e UFW, mentre un esempio di file di controllo è /etc/hosts.deny (Access Control di host nelle istanze basate su cPanel).

Per risolvere il problema, effettua una delle seguenti operazioni:

  • Se l'accesso SSH all'istanza tramite il terminale o l'applicazione PuTTY funziona, accedi all'istanza e rimuovi le regole di negazione dal firewall e dal file /etc/hosts.deny.
  • Se hai un'istanza cPanel, accedi alla console WHM per rimuovere le regole del firewall.
  • Se non puoi connetterti all'istanza utilizzando SSH dal terminale o dall'applicazione PuTTY, disattiva il firewall utilizzando uno script di avvio. Lo script di avvio può essere aggiunto solo durante l'avvio di un'istanza. Per utilizzare uno script di avvio per disattivare i firewall a livello di sistema operativo, Iptables e UFW, esegui le seguenti operazioni:

1.    Apri la console Amazon Lightsail.

2.    Crea uno snapshot manuale dell'istanza.

3.    Nella scheda Snapshot, in Snapshot manuali, seleziona i tre punti accanto al nuovo snapshot.

4.    Seleziona Crea nuova istanza.

5.    Seleziona la stessa zona di disponibilità dell'istanza precedente.

6.    Seleziona Aggiungi script di avvio, quindi aggiungi il seguente script.

Nota: l'esempio seguente disattiva il firewall UFW, scarica tutte le catene iptable o le regole del firewall e disattiva il file /etc/hosts.deny rinominandolo.

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.    Scegli un nuovo piano di istanza o utilizza lo stesso piano dell'istanza precedente.

8.    Inserisci un nome per l'istanza, quindi seleziona Crea istanza.

Dopo l'avvio dell'esecuzione della nuova istanza, attendi da 10 a 15 minuti, quindi prova a connetterti ad essa utilizzando la console SSH basata su browser.

Nota: se l'istanza precedente aveva un indirizzo IP statico, puoi utilizzarlo sulla nuova istanza. Scollega l'indirizzo IP statico, quindi collegalo alla nuova istanza dalla scheda Rete. Per ulteriori informazioni, consulta Indirizzi IP statici in Amazon Lightsail.

Il servizio SSH è inattivo

Se il servizio SSH non è in esecuzione o attivo sull'istanza, la connessione SSH non riesce e viene visualizzato l'errore UPSTREAM_NOT_FOUND [519]. Per risolvere questo problema, configura il servizio Session Manager di AWS Systems Manager per la tua istanza Lightsail. Dopo aver configurato Session Manager, accedi all'istanza senza il servizio SSH, quindi risolvi il problema SSH.

I passaggi di base per la risoluzione dei problemi relativi a SSH includono:

  • Esamina i registri di autenticazione SSH nel file /var/log/auth.log o /var/log/secure, a seconda della distribuzione del sistema operativo, per identificare gli errori.
  • Verifica la sintassi del file di configurazione SSH e quindi correggi eventuali errori.
sudo sshd -t
sudo systemctl restart sshd

Configurazione errata della chiave di sistema Lightsail /etc/ssh/lightsail_instance_ca.pub

Lightsail usa la chiave di sistema /etc/ssh/lightsail_instance_ca.pub per attivare l'accesso SSH basato su browser. Se questo file è mancante, l'autenticazione SSH non riesce e viene visualizzato l'errore CLIENT_UNAUTHORIZED [769]. Lo stesso errore si verifica quando la chiave di sistema Lightsail non è specificata nel parametro TrustedUserCAKeys nel file di configurazione SSH /etc/ssh/sshd_config.

Se la connessione SSH all'istanza tramite il terminale o l'applicazione PuTTY funziona, accedi all'istanza e verifica che il file /etc/ssh/sshd_config esista e che contenga la chiave ssh-rsa.

Se il file è mancante, ricrea il file attenendoti ai seguenti passaggi:

1.    Esegui il seguente comando e conferma di ottenere la chiave ssh-rsa nell'output del comando:

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

2.    Se il comando restituisce la chiave ssh-rsa nell'output, esegui i seguenti comandi per copiarla in /etc/ssh/lightsail_instance_ca.pub:

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.    Se ottieni una chiave ssh-rsa dal passaggio 1, o se non puoi eseguire SSH all'istanza utilizzando il terminale o l'applicazione PuTTY, crea uno snapshot manuale dell'istanza e avvia una nuova istanza con tale snapshot. La chiave di sistema Lightsail viene aggiunta automaticamente al server all'avvio dell'istanza.

Hai eseguito l'aggiornamento da una versione precedente di Ubuntu alla 20.04 o successiva

Per le istanze che eseguono Ubuntu 20.04 o versioni successive, devi permettere alle autorità di certificazione (CA) di utilizzare l'algoritmo ssh-rsa per firmare i certificati. In caso contrario, l'autenticazione non riesce e viene visualizzato l'errore CLIENT_UNAUTHORIZED [769]. Le CA possono utilizzare l'algoritmo ssh-rsa di default nelle istanze di Ubuntu 20.04. Tuttavia, se aggiorni la versione precedente di Ubuntu alla 20.04, devi dare il consenso manualmente alle CA. Per fare ciò, segui questi passaggi:

1.    Connettiti all'istanza utilizzando un client SSH come il terminale o l'applicazione PuTTY.

2.    Apri il file di configurazione SSH (/etc/ssh/sshd_config).

3.    Aggiungi i parametri CA al file, a seconda della versione di Ubuntu in uso:

       Se la versione del sistema operativo viene aggiornata a Ubuntu 20.04: inserisci manualmente la riga del parametro CASignatureAlgorithms nel file sshd_config:

$ 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

       Se la versione del sistema operativo viene aggiornata a Ubuntu 22.04: inserisci manualmente le righe dei parametri CASignatureAlgorithms e PubKeyAcceptedAlgorithms nel file sshd_config:

$ 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.    Esegui il seguente comando per convalidare il contenuto del file di configurazione sshd:

$ sudo sshd -T
  1.    Esegui il seguente comando per riavviare il servizio sshd:
$ sudo systemctl restart sshd

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa