¿Por qué se muestran errores cuando uso la consola de SSH basada en el navegador para acceder a mi instancia de Lightsail?

9 minutos de lectura
0

Se muestra un mensaje UPSTREAM_ERROR [515], UPSTREAM_NOT_FOUND [519] o CLIENT_UNAUTHORIZED [769] cuando uso la consola de SSH basada en el navegador para conectarme a mi instancia de Amazon Lightsail.

Breve descripción

Si se muestran errores relacionados con SSH cuando se conecta a su instancia de Lightsail, es posible que se muestren los siguientes mensajes:

  • «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. If this instance has just started up, try again in a minute or two. UPSTREAM_NOT_FOUND [519]»
  • «Login failed. If this instance has just started up, try again in a minute or two. CLIENT_UNAUTHORIZED [769]»

Los errores UPSTREAM_ERROR [515] y UPSTREAM_NOT_FOUND\ [519] indican que no puede alcanzar su instancia de Lightsail a través de SSH. Algunos de los motivos habituales por los que se producen estos errores son:

  • Hay problemas con la instancia, como un error de arranque, un error de comprobación del estado o un consumo excesivo de los recursos.
  • Un firewall en el nivel del sistema operativo bloquea el acceso al puerto de SSH.
  • El puerto de SSH (22) no es el predeterminado.
  • El servicio de SSH está inactivo.

El error CLIENT_UNAUTHORIZED [769] indica que hay un problema de autenticación de SSH en su instancia de Lightsail. Algunos de los motivos habituales por los que se produce este error son:

  • No ha configurado correctamente la clave de sistema de Lightsail /etc/ssh/lightsail_instance_ca.pub.
  • Ha actualizado su instancia de Ubuntu a la versión 20.04 o posterior.

Solución

Hay un error de arranque de la instancia, un error de comprobación del estado de la instancia o un consumo excesivo de los recursos

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

Comprobación del estado del sistema

Si no se ha superado la comprobación del estado del sistema, significa que el estado del hardware subyacente de la instancia no es el adecuado. Para solucionar el problema, detenga y vuelva a iniciar la instancia para migrarla a un hardware en buen estado.

Advertencia: La dirección IP pública de las instancias cambia cada vez que se detiene y se inicia la instancia. Si no quiere que la dirección IP pública cambie con cada parada e inicio, asocie una dirección IP estática antes de detener la instancia.

Comprobación del estado de la instancia

Si no se ha superado la comprobación del estado de la instancia, es posible que se estén produciendo errores de arranque por un problema en el nivel del sistema operativo. También puede ser que el consumo de los recursos de la instancia, como la CPU o la memoria, sea excesivo. Para ver los pasos para solucionar estos problemas, consulte ¿Cómo puedo resolver problemas comunes que provocan que mi instancia de Lightsail no responda?

Un firewall en el nivel del sistema operativo bloquea el acceso al puerto de SSH

El acceso de SSH basado en el navegador utiliza la dirección IP interna de Amazon para conectarse a su instancia de Lightsail. Algunos archivos de control de acceso y firewalls en el nivel del sistema operativo solo permiten que SSH acceda a un único conjunto de direcciones IP. En tal caso, se mostrará el error UPSTREAM_NOT_FOUND [519] o UPSTREAM_ERROR [515]. El mismo problema ocurre cuando un firewall bloquea por completo el acceso de SSH.

Nota: Entre los ejemplos de firewalls en el nivel del sistema operativo se incluyen Iptables y UFW. Un ejemplo de archivo de control es /etc/hosts.deny, que aloja el control de acceso en instancias basadas en cPanel.

Para solucionar este problema, tome una de estas medidas:

  • Si puede usar SSH para acceder a la instancia desde el terminal o la aplicación PuTTY, inicie sesión en la instancia. Quite 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 quitar las reglas del firewall.
  • Si no puede usar SSH para conectarse a la instancia desde el terminal o la aplicación PuTTY, use un script de inicio para desactivar el firewall. Solo podrá añadir el script de inicio cuando inicie una instancia.

Para usar un script de inicio para desactivar los firewalls en el nivel del sistema operativo, Iptables y UFW, siga estos pasos:

  1. Abra la consola de Amazon Lightsail.

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

  3. En la pestaña Instantáneas, en Instantáneas manuales, elija los tres puntos junto a la nueva instantánea.

  4. Elija Crear una nueva instancia.

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

  6. Elija Añadir un script de lanzamiento y, a continuación, agregue el siguiente script.
    Nota: El siguiente script de ejemplo desactiva el firewall UFW, elimina todas las cadenas o reglas de firewall de Iptable y cambia el nombre del archivo /etc/hosts.deny para desactivarlo:

    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 instancias o use el mismo plan que para la instancia anterior.

  8. Introduzca un nombre para la instancia y, a continuación, seleccione Crear instancia.

Cuando la nueva instancia comience a ejecutarse, espere entre 10 y 15 minutos y, a continuación, utilice la consola de SSH basada en el navegador para intentar conectarse a la instancia.

Nota: Si la instancia anterior tenía una dirección IP estática, use la dirección IP estática en la nueva instancia. En la pestaña Redes de la consola de Lightsail, desasocie la dirección IP estática y, a continuación, asóciela a la nueva instancia.

El servicio de SSH está inactivo

Si el servicio de SSH no se encuentra en ejecución o no está activo en la instancia, la conexión de SSH fallará y se mostrará el error UPSTREAM_NOT_FOUND\ [519]. Para solucionar este problema, configure el Administrador de sesiones de AWS Systems Manager para su instancia de Lightsail. Luego, acceda a la instancia sin el servicio de SSH para solucionar el problema con SSH.

Los pasos básicos para solucionar problemas relacionados con SSH incluyen:

  • Según la distribución del sistema operativo, revise los registros de autenticación de SSH en los archivos /var/log/auth.log o /var/log/secure para detectar los errores.
  • Pruebe la sintaxis del archivo de configuración de SSH y, a continuación, corrija los posibles errores:
sudo sshd -t
sudo systemctl restart sshd

No ha configurado correctamente la clave de sistema de Lightsail /etc/ssh/lightsail_instance_ca.pub

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

Si puede usar SSH para conectarse a la instancia a través del terminal o la aplicación PuTTY, inicie sesión en la instancia. Confirme si el archivo /etc/ssh/sshd_config existe y contiene la clave ssh-rsa.

Si falta el archivo, siga estos pasos para volver a crearlo:

  1. Ejecute el siguiente comando para confirmar si ha obtenido 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 ha obtenido una clave ssh-rsa o no puede usar SSH para conectarse a la instancia, cree una instantánea de la instancia. Al iniciar una nueva instancia desde la instantánea, la clave de sistema de Lightsail se agrega automáticamente al servidor cuando se inicia la instancia.

Ha actualizado su instancia de Ubuntu a la versión 20.04 o posterior

En el caso de las instancias que ejecutan Ubuntu 20.04 o una versión posterior, debe permitir que las autoridades de certificación (CA) usen el algoritmo ssh-rsa para firmar certificados. De lo contrario, la autenticación fallará y se mostrará el error CLIENT_UNAUTHORIZED [769]. En una instancia de Ubuntu de la versión 20.04 o posterior, las CA pueden usar el algoritmo ssh-rsa de forma predeterminada. Sin embargo, si actualiza una instancia de Ubuntu de una versión anterior a la 20.04, debe permitir las CA manualmente.

Para permitir manualmente las CA, siga estos pasos:

  1. Use un cliente de SSH, como el terminal o la aplicación PuTTY, para conectarte a la instancia.

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

  3. Agregue los parámetros de CA al archivo para la versión de su instancia de Ubuntu:

    Versión de instancia de Ubuntu actualizada a la versión 20.04

    Introduzca 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

    Versión de instancia de Ubuntu actualizada a la versión 22.04

    Introduzca 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
  5. Ejecute el siguiente comando para reiniciar el servicio sshd:

    $ sudo systemctl restart sshd
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 10 meses