Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
¿Por qué recibo el error «Server refused our key» cuando intento conectarme a mi instancia de EC2 mediante SSH?
Recibo el error «Server refused our key» cuando me conecto a mi instancia de Amazon Elastic Compute Cloud (Amazon EC2) mediante SSH.
Breve descripción
Un servidor SSH (sshd) puede rechazar una clave SSH privada por varios motivos. A continuación, se explican algunos de los motivos más habituales por los que recibes este error:
- Utilizas un archivo de clave privada incorrecto cuando intentas conectarte a la instancia de Amazon EC2. Para obtener más información, consulta ¿Por qué se muestran los errores «imported-openssh-key» o «Putty Fatal Error» cuando me conecto a mi instancia de Linux de Amazon EC2?
- Se ha modificado la configuración del servidor SSH en /etc/ssh/sshd_config. Para obtener más información, consulta ¿Cómo puedo usar SSH para acceder a mi instancia de EC2 después de cambiar el archivo sshd_config de la instancia?
- El sistema operativo no ha podido montar los directorios principales (/etc/fstab). Para más información, consulta ¿Por qué mi instancia de Linux de EC2 pasa al modo de emergencia cuando intento iniciarla?
Resolución
Utilizas un nombre de usuario incorrecto para tu AMI cuando intentas conectarte a tu instancia de Amazon EC2
Los nombres de usuario habituales son «ec2-user», «ubuntu», «centos», «root» o «admin». Para obtener una lista de nombres de usuario válidos, consulta Error: Server refused our key o No supported authentication methods available.
El usuario se eliminó del servidor o se bloqueó la cuenta de AWS
Si el usuario que intenta acceder a la instancia se ha eliminado del servidor, vuelve a añadirlo como nuevo usuario. Para obtener más información, consulta ¿Cómo agrego nuevas cuentas de usuario con acceso SSH a mi instancia Amazon EC2 de Linux?
Hay problemas con los permisos en la instancia o falta un directorio
Existen cuatro métodos para comprobar los permisos y directorios en la instancia:
Método 1: uso de la consola serie de EC2
Si has activado la consola serie de Amazon EC2 para Linux, puedes utilizarla para solucionar problemas con los tipos de instancias basadas en Nitro compatibles. Puedes acceder a la consola serie mediante la consola de Amazon EC2 o Interfaz de la línea de comandos de AWS (AWS CLI). Para obtener más información, consulta Configurar el acceso a la consola serie de EC2.
Método 2: uso de Administrador de sesiones de AWS Systems Manager para iniciar sesión en la instancia y comprobar los permisos
Nota: Para utilizar este método, se debe instalar el agente de SSM. Para obtener más información sobre Administrador de sesiones y una lista completa de los requisitos previos, consulta Configuración de Administrador de sesiones.
-
Abre la consola de AWS Systems Manager.
-
Utiliza el comando stat para comprobar si los permisos de los archivos del directorio principal home son correctos. A continuación, se muestra una lista de ejemplos de permisos correctos:
Directorio principal de Linux, /home, (0755/drwxr-xr-x).
Directorio principal del usuario, /home/ec2-user/, (0700/drwx------).
Permiso de directorio.ssh, /home/ec2-user/.ssh, (0700/drwx------).
Permiso de archivo authorized_keys, /home/ec2-user/.ssh/authorized_keys, (0600/-rw-------).
A continuación, se muestra un ejemplo del comando stat y del resultado. En este ejemplo, ec2-user es el nombre de usuario. Cambia el nombre de usuario a tu AMI específica:$ stat /home/ec2-user/ File: '/home/ec2-user/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 10301h/66305d Inode: 18322 Links: 3 Access: (0700/drwx------) Uid: ( 500/ec2-user) Gid: ( 500/ec2-user)
-
Si los permisos no coinciden con los valores anteriores, usa los siguientes comandos:
$ sudo chown root:root /home$ sudo chmod 755 /home $ sudo chown ec2-user:ec2-user /home/ec2-user -R $ sudo chmod 700 /home/ec2-user /home/ec2-user/.ssh $ sudo chmod 600 /home/ec2-user/.ssh/authorized_keys
-
Conéctate mediante SSH a la instancia.
Método 3: para corregir automáticamente los problemas que causan el error, usa el documento AWSSupport-TroubleshootSSH
El documento de automatización AWSSupport-TroubleshootSSH instala la herramienta Amazon EC2Rescue en la instancia. A continuación, el documento de automatización comprueba y corrige los problemas que provocan errores de conexión remota durante la conexión de una máquina Linux mediante SSH. Para obtener más información, consulta Cuando intento conectarme a mi instancia de EC2 mediante SSH, se muestran mensajes de error. ¿Cómo puedo utilizar el flujo de trabajo de automatización AWSSupport-TroubleshootSSH para solucionar problemas de conexión de SSH?
Método 4: Utilización de los datos de usuario para establecer los permisos en la instancia
Importante:
- Este procedimiento de recuperación requiere que detenga e inicie la instancia. Al hacerlo, se pierden los datos de los volúmenes del almacén de instancias. Para obtener más información, consulta Volúmenes raíz para las instancias de Amazon EC2.
- Si la instancia forma parte de un grupo de Amazon EC2 Auto Scaling, es posible que finalice cuando se detenga. Esto también puede ocurrir en instancias lanzadas por servicios que utilizan AWS Auto Scaling, como Amazon EMR, AWS CloudFormation o AWS Elastic Beanstalk. La finalización de la instancia en este escenario depende de la configuración de la protección de desescalamiento de instancias del grupo de escalamiento automático. Si la instancia forma parte de un grupo de escalamiento automático, elimínala del grupo de escalamiento automático antes de iniciar los pasos para solucionar el problema. Puedes volver a añadir la instancia al grupo de escalamiento automático después de completar los pasos de resolución.
- Al detener y reiniciar la instancia, se modifica la dirección IP pública. Se recomienda utilizar una dirección IP elástica en lugar de una dirección IP pública para enrutar el tráfico externo hacia la instancia.
- No puedes cambiar la clave SSH con los datos de usuario si el dispositivo raíz de la instancia es un volumen de almacén de instancias. Para obtener más información, consulta Volúmenes raíz para las instancias de Amazon EC2.
- La actualización de los datos de usuario de la instancia se aplica a todas las distribuciones que admitan las directivas cloud-init. Cloud-init debe estar instalado y configurado. Para obtener más información, consulta SSH - Configure SSH and SSH keys en el sitio web de Cloud-init.
Sigue estos pasos:
-
Abre la consola de Amazon EC2 y, a continuación, elige tu instancia.
-
Elige Estado de instancia y, a continuación, Detener instancia.
Nota: Si Detener no está disponible, significa que la instancia ya está detenida o que el dispositivo raíz es un volumen de almacén de instancias. -
Elige Acciones, Configuración de la instancia y, a continuación, Editar datos de usuario.
-
Copia el siguiente comando en el campo Datos de usuario y, a continuación, selecciona Guardar. Asegúrate de copiar todo el comando y no añadas espacios adicionales.
Nota: El siguiente comando usa el nombre de usuario ec2-user. Cambie ec2-user por el nombre de usuario de tu AMI.Content-Type: multipart/mixed; boundary="//"MIME-Version: 1.0 --// Content-Type: text/cloud-config; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cloud-config.txt" #cloud-config cloud_final_modules: - [scripts-user, always] --//Content-Type: text/x-shellscript; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="userdata.txt" #!/bin/bash chown root:root /home chmod 755 /home chown ec2-user:ec2-user /home/ec2-user -R chmod 700 /home/ec2-user /home/ec2-user/.ssh chmod 600 /home/ec2-user/.ssh/authorized_keys --//
-
Inicia la instancia y, a continuación, usa SSH para conectarte a ella.
Nota: De forma predeterminada, el comando de datos de usuario se pone en marcha una vez por instancia. Este procedimiento cambia el comportamiento predeterminado para añadir la clave pública cada vez que se reinicia, detiene o inicia la instancia. Para restaurar el comportamiento predeterminado, elimina los datos de usuario personalizados. Se recomienda seguir los protocolos de seguridad y permitir que los datos de los usuarios se pongan en marcha después del primer arranque de una instancia. Modifica los datos de usuario de una instancia con el método de API ModifyInstanceAttribute. Para restringir el acceso a este método, utiliza políticas de IAM.
Información relacionada
Conectarse a la instancia de Linux mediante PuTTY
Pares de claves e instancias de Amazon EC2
¿Cómo puedo solucionar los problemas de conexión a mi instancia de Linux de Amazon EC2 mediante SSH?
Vídeos relacionados


Contenido relevante
- preguntada hace un meslg...
- preguntada hace 21 díaslg...
- preguntada hace un meslg...
- preguntada hace 2 meseslg...
- preguntada hace 4 meseslg...