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

Última actualización: 12/10/2021

Recibo uno de los siguientes mensajes de error al conectarme a mi instancia de Amazon Lightsail mediante la consola de SSH basada en navegador:

  • La instancia ha detectado un error y ha cerrado la conexión. Vuelva a intentarlo o contacte con atención al cliente. UPSTREAM_ERROR [515]
  • Se ha producido un error y no hemos podido conectarnos o mantenernos conectados a su instancia. Si esta instancia acaba de comenzarse, vuelva a intentarlo en uno o dos minutos. UPSTREAM_NOT_FOUND [519]
  • Error de inicio de sesión. Si esta instancia acaba de comenzarse, vuelva a intentarlo en uno o dos minutos. CLIENT_UNAUTHORIZED [769]

¿Cómo soluciono estos errores?

Descripción corta

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 comienza la instancia. Si quiere que la dirección IP permanezca igual en cada parada y comienzo 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 a nivel del 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. Si los firewalls a nivel del sistema operativo, como Iptables, UFW, etc., o los archivos de control de acceso, como /etc/hosts.deny (es decir, Control de acceso a los hosts en instancias basadas en cPanel), permiten el acceso de SSH solo a un conjunto de direcciones IP y deniegan todas las demás, recibirá el error UPSTREAM_NOT_FOUND [519] o UPSTREAM_ERROR [515]. El mismo problema ocurre si el firewall bloquea completamente el acceso de SSH.

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, adjúntela 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, haga lo siguiente:

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).

2.    Agregue ssh_rsa en la línea CASignatureAlgorithms. El siguiente ejemplo muestra la línea CASignatureAlgorithms después de modificarla para agregar ssh_rsa:

CASignatureAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

3.    Ejecute el siguiente comando para reiniciar el servicio sshd:

$ sudo systemctl restart sshd

¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?