¿Por qué aparecen los errores UPSTREAM_ERROR, UPSTREAM_NOT_FOUND o CLIENT_UNAUTHORIZED al acceder a la instancia de Lightsail mediante la consola de SSH basada en navegador?

9 minutos de lectura
0

Recibo un mensaje UPSTREAM_ERROR [515], UPSTREAM_NOT_FOUND [519] o CLIENT_UNAUTHORIZED [769] cuando me conecto a mi instancia de Amazon Lightsail mediante la consola de SSH basada en navegador. ¿Cómo se solucionan estos errores?

Descripción breve

Si recibe un error al conectarse a su instancia de Lightsail y el error está relacionado con SSH, es posible que vea uno de los siguientes mensajes:

  • “Your instance encountered an error and has closed the connection. Try again or contact customer support. UPSTREAM_ERROR [515]” (Su instancia ha detectado un error y ha cerrado la conexión. Vuelva a intentarlo o póngase en contacto con el servicio de atención al cliente. UPSTREAM_ERROR [515]).
  • “An error occurred and we were unable to connect or stay connected to your instance. If this instance has just started up, try again in a minute or two. UPSTREAM_NOT_FOUND [519]” (Se ha producido un error y no hemos podido conectarnos o mantenernos conectados a su instancia. Si esta instancia acaba de iniciarse, vuelva a intentarlo en uno o dos minutos. UPSTREAM_NOT_FOUND [519]).
  • “Login failed. If this instance has just started up, try again in a minute or two. CLIENT_UNAUTHORIZED [769]” (Fallo en el inicio de sesión. Si esta instancia acaba de iniciarse, vuelva a intentarlo en uno o dos minutos. CLIENT_UNAUTHORIZED [769]).

Los errores UPSTREAM_ERROR [515] y UPSTREAM_NOT_FOUND [519] indican que no se puede acceder a la instancia de Lightsail cuando se utiliza SSH. A continuación se explican los motivos comunes de estos errores:

  • Errores de arranque de la instancia, errores de verificación del estado de la instancia o uso excesivo de recursos en la instancia.
  • Un firewall a nivel del sistema operativo bloquea el acceso a los puertos de SSH.
  • El puerto de SSH predeterminado (22) ha cambiado a otro diferente.
  • El servicio de SSH no está disponible.

El error CLIENT_UNAUTHORIZED [769] indica que hay un problema de autenticación de SSH en la instancia de Lightsail. A continuación se explican los motivos comunes de este error:

  • Configuración errónea de la clave del sistema Lightsail en /etc/ssh/lightsail_instance_ca.pub.
  • Ha actualizado su instancia de Ubuntu de una versión anterior a la 20.04 o posterior.

Resolución

Errores de arranque de la instancia, errores de verificación del estado de la instancia o utilización excesiva de recursos en la instancia

Consulte las métricas de verificación del estado de su instancia para determinar si la instancia no ha superado la verificación del estado del sistema o la verificación del estado de la instancia.

Verificación del estado del sistema

Si se produce un error en la verificación del estado del sistema, el hardware subyacente de la instancia no está en buen estado. Para solucionar el problema, detenga y comience la instancia. Esto migra la instancia a un hardware en buen estado.

Advertencia: Tenga en cuenta que la dirección IP pública de la instancia cambia cada vez que se detiene y se inicia la instancia. Si quiere que la dirección IP permanezca igual en cada parada e inicio de la instancia, adjunte una dirección IP estática.

Verificación del estado de la instancia

Si se produce un error en la verificación del estado de la instancia, es posible que un problema en el nivel del sistema operativo esté provocando errores de arranque. O bien, es posible que los recursos de la instancia, como la CPU o la memoria, se utilicen en exceso. Para ver los pasos de solución de problemas, consulte ¿Cómo puedo resolver problemas comunes que provocan que mi instancia de Lightsail no responda?

Un firewall de nivel de sistema operativo bloquea el acceso a los puertos de SSH

El acceso de SSH basado en navegador utiliza la dirección IP interna de Amazon para conectarse a su instancia de Lightsail. Algunos firewalls y archivos de control de acceso de nivel de sistema operativo permiten el acceso de SSH solo a un conjunto de direcciones IP y deniegan todos los demás. En este caso, recibirá el error UPSTREAM_NOT_FOUND [519] o UPSTREAM_ERROR [515]. El mismo problema ocurre si un firewall bloquea completamente el acceso de SSH.

Nota: Los ejemplos de firewalls de nivel de sistema operativo incluyen Iptables y UFW, y un ejemplo de archivo de control es /etc/hosts.deny (aloja el control de acceso en instancias basadas en cPanel).

Para resolver este problema, lleve a cabo una de las siguientes acciones:

  • Si el acceso de SSH a la instancia mediante el terminal o la aplicación PuTTY funciona, inicie sesión en la instancia y elimine las reglas de denegación del firewall y del archivo /etc/hosts.deny.
  • Si tiene una instancia de cPanel, acceda a la consola de WHM para eliminar las reglas del firewall.
  • Si no puede conectarse a la instancia mediante SSH desde el terminal o la aplicación PuTTY, desactive el firewall mediante un script de lanzamiento. El script de lanzamiento solo se puede agregar al lanzar una instancia. Para utilizar un script de lanzamiento para desactivar los firewalls de nivel del sistema operativo, Iptables y UFW, haga lo siguiente:

1.    Abra la consola de Amazon Lightsail.

2.    Cree una instantánea manual de la instancia.

3.    En la pestaña Snapshots (Instantáneas), en Manual snapshots (Instantáneas manuales), seleccione los tres puntos situados junto a la nueva instantánea.

4.    Seleccione Create new instance (Crear nueva instancia).

5.    Seleccione la misma zona de disponibilidad que la instancia anterior.

6.    Seleccione Add launch script (Agregar script de lanzamiento) y, a continuación, agregue el siguiente script.

Nota: El siguiente ejemplo desactiva el firewall de UFW, vacía todas las cadenas iptable o reglas de firewall y desactiva el archivo /etc/hosts.deny mediante un cambio de nombre.

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.    Elija un nuevo plan de instancia o use el mismo que la instancia anterior.

8.    Ingrese un nombre para la instancia y, a continuación, seleccione Create instance (Crear instancia).

Una vez que la nueva instancia comience a ejecutarse, espere entre 10 y 15 minutos y, a continuación, intente conectarse a ella mediante la consola de SSH basada en navegador.

Nota: Si la instancia anterior tenía una dirección IP estática, puede usarla en la nueva instancia. Desconecte la dirección IP estática y, a continuación, agréguela a la nueva instancia desde la pestaña Networking (Redes). Para obtener más información, consulte Direcciones IP estáticas en Amazon Lightsail.

El servicio de SSH no está disponible

Si el servicio de SSH no se está ejecutando o no está activo en la instancia, la conexión SSH falla y recibe el error UPSTREAM_NOT_FOUND [519]. Para solucionar este problema, configure el servicio Administrador de sesiones de AWS Systems Manager para su instancia de Lightsail. Después de configurar el Administrador de sesiones, acceda a la instancia sin el servicio de SSH y, a continuación, solucione el problema de SSH.

Los pasos básicos de solución de problemas de SSH son, entre otros:

  • Revise los registros de autenticación de SSH del archivo /var/log/auth.log o /var/log/secure, según la distribución del sistema operativo, para identificar los errores.
  • Pruebe la sintaxis del archivo de configuración SSH y, a continuación, corrija los errores.
sudo sshd -t
sudo systemctl restart sshd

Configuración errónea de la clave del sistema de Lightsail /etc/ssh/lightsail_instance_ca.pub

Lightsail utiliza la clave del sistema /etc/ssh/lightsail_instance_ca.pub para activar el acceso de SSH basado en navegador. Si falta este archivo, se produce un error en la autenticación de SSH y recibe el error CLIENT_UNAUTHORIZED [769]. El mismo error se produce cuando no se especifica la clave del sistema de Lightsail en el parámetro TrustedUserCAKeys del archivo de configuración de SSH /etc/ssh/sshd_config.

Si la conexión SSH a la instancia a través del terminal o la aplicación PuTTY funciona, inicie sesión en la instancia y confirme que el archivo /etc/ssh/sshd_config existe y que contiene la clave ssh-rsa.

Si falta el archivo, vuelva a crearlo siguiendo los pasos siguientes:

1.    Ejecute el siguiente comando y confirme que obtiene la clave ssh-rsa en el resultado del comando:

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

2.    Si el comando devuelve la clave ssh-rsa en el resultado, ejecute los siguientes comandos para copiarla en /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.    Si no obtiene ninguna clave ssh-rsa en el paso 1 o si no puede acceder a la instancia mediante el terminal o la aplicación PuTTY, cree una instantánea manual de la instancia y lance una nueva instancia con esa instantánea. La clave del sistema de Lightsail se agrega al servidor automáticamente en el momento del lanzamiento de la instancia.

Ha actualizado desde una versión anterior de Ubuntu a la 20.04 o posterior

Para las instancias que ejecutan Ubuntu 20.04 o una versión posterior, debe permitir que las autoridades de certificado (CA) utilicen el algoritmo ssh-rsa para firmar certificados. De lo contrario, la autenticación falla y recibe el error CLIENT_UNAUTHORIZED [769]. Las autoridades de certificado pueden utilizar el algoritmo ssh-rsa de forma predeterminada en instancias de Ubuntu 20.04. Sin embargo, si actualiza su versión anterior de Ubuntu a la 20.04, debe permitir manualmente las autoridades de certificado. Para ello, sigue estos pasos:

1.    Conéctese a la instancia mediante un cliente de SSH, como el terminal o la aplicación PuTTY.

2.    Abra el archivo de configuración de SSH (/etc/ssh/sshd_config).

3.    Agregue parámetros de autoridad de certificado al archivo, según su versión de Ubuntu:

       Si la versión del sistema operativo se ha actualizado a Ubuntu 20.04: ingrese manualmente la línea de parámetros CASignatureAlgorithms en el archivo 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

       Si la versión del sistema operativo se ha actualizado a Ubuntu 22.04: ingrese manualmente las líneas de parámetros CASignatureAlgorithms y PubkeyAcceptedAlgorithms en el archivo 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.    Ejecute el siguiente comando para validar el contenido del archivo de configuración sshd:

$ sudo sshd -T
  1.    Ejecute el siguiente comando para reiniciar el servicio sshd:
$ sudo systemctl restart sshd

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año