¿Por qué recibo el mensaje de 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.
Resolución
El servidor SSH (sshd) puede rechazar una clave SSH privada por uno de los siguientes motivos:
- Has utilizado un archivo de clave privada incorrecto al conectarte a la instancia de Amazon EC2. Para solucionar este problema, 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?
- Alguien cambió la configuración del servidor SSH en /etc/ssh/sshd_config. Para solucionar este problema, 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 (SO) no ha podido montar los directorios principales (/etc/fstab). Para solucionar este problema, consulta ¿Por qué mi instancia de Linux de EC2 pasa al modo de emergencia cuando intento iniciarla?
- Has utilizado un nombre de usuario incorrecto para tu imagen de máquina de Amazon (AMI) al conectarte a la instancia de Amazon EC2. Para obtener una lista de nombres de usuario válidos, consulta Error: Server refused our key o No supported authentication methods available.
- Alguien ha eliminado el usuario del servidor. Para solucionar este problema, vuelve a agregar el usuario al servidor como un usuario nuevo.
También es posible que recibas el mensaje de error Server refused our key si tu instancia tiene problemas de permisos o le falta un directorio. Para verificar los permisos y directorios de la instancia, usa uno de los siguientes métodos.
Utilización de la consola serie de EC2
Si has activado la consola serie de EC2 para Linux, puedes utilizarla para solucionar problemas con los tipos de instancia basados en Nitro compatibles.
Uso de Systems Manager para iniciar sesión en la instancia y comprobar los permisos
Requisito previo: Instala AWS Systems Manager Agent (SSM Agent). Además, asegúrate de que tu configuración cumpla con los requisitos previos de Session Manager, una capacidad de AWS Systems Manager.
Para usar Session Manager para solucionar problemas de la instancia, sigue estos pasos:
-
Abre la consola de Systems Manager.
-
Para comprobar si los archivos del directorio principal tienen los permisos correctos, ejecuta el siguiente comando:
stat /home/ec2-user/ ls -ld /home # Should show drwxr-xr-x (755) ls -ld /home/ec2-user # Should show drwx------ (700) ls -ld /home/ec2-user/.ssh # Should show drwx------ (700) ls -l /home/ec2-user/.ssh/authorized_keys # Should show -rw------- (600)Nota: Sustituye ec2-user por el nombre de usuario correcto para tu AMI.
En el resultado, comprueba el acceso para asegurarte de que tu configuración utiliza los siguientes permisos:
El directorio principal de Linux /home debe tener los permisos 0755/drwxr-xr-x.
El directorio principal del usuario /home/ec2-user/ debe tener los permisos 0700/drwx------.
El permiso del directorio .ssh /home/ec2-user/.ssh debe tener los permisos 0700/drwx------.
El permiso del archivo /home/ec2-user/.ssh/authorized_keys authorized_keys debe tener permisos 0600/-rw-------.
Resultado de ejemplo: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) -
Para actualizar los permisos de la configuración, ejecuta 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_keysNota: Sustituye ec2-user por el nombre de usuario correcto para tu AMI.
Ejecución del runbook AWSSupport-TroubleshootSSH
Para corregir automáticamente los problemas que causan errores, ejecuta AWSSupport-TroubleshootSSH. El runbook instala la herramienta Amazon EC2Rescue en la instancia y, a continuación, identifica y corrige los problemas que provocan errores de conexión remota durante 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?
Utilización de los datos de usuario para establecer los permisos en la instancia
Importante: Antes de detener e iniciar la instancia, lleva a cabo las siguientes acciones:
- Crea una copia de seguridad de tu volumen de Amazon Elastic Block Store (Amazon EBS).
Nota: Si tu instancia está respaldada por un almacén de instancias o tiene volúmenes de almacén de instancias que contienen datos, Amazon EC2 elimina los datos cuando se detiene 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. - Elimina temporalmente la instancia del grupo de Amazon EC2 Auto Scaling cuando completes los pasos de resolución.
Nota: Si detienes una instancia que está en un grupo de EC2 Auto Scaling, puedes terminar la instancia en función de la configuración de protección de desescalamiento horizontal. Las instancias que inicies con Amazon EMR, AWS CloudFormation o AWS Elastic Beanstalk pueden estar en un grupo de escalamiento automático. - Establece el comportamiento de apagado de las instancias en Detener para asegurarte de que las instancias no finalicen cuando las detengas.
- Instala y configura cloud-init. Para obtener más información, consulta Configuración de las claves SSH y SSH en el sitio web de cloud-init.
Importante: La actualización de los datos de usuario de la instancia se afecta a todas las distribuciones que admitan los comandos cloud-init.
Nota: Al detener e iniciar una instancia, la dirección IP pública de la instancia cambia. Se recomienda utilizar una dirección IP elástica para enrutar el tráfico externo hacia la instancia en lugar de una dirección IP pública. Si usas Amazon Route 53, es posible que tengas que actualizar los registros DNS de Route 53 cuando cambies la dirección IP pública.
Para usar los datos de usuario para solucionar problemas de permisos, sigue estos pasos:
-
Abre la consola de Amazon EC2.
-
En el panel de navegación, elige Instancias y, a continuación, selecciona la instancia.
-
Elige Estado de instancia y, a continuación, Detener instancia.
Nota: Si no puedes elegir Detener instancia, significa que la instancia ya está detenida o que el dispositivo raíz es un volumen de almacén de instancias. -
Selecciona Acciones y, a continuación, selecciona Configuración de la instancia.
-
Selecciona Editar datos de usuario y, a continuación, introduce el siguiente comando:
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 --//Nota: Sustituye ec2-user por el nombre de usuario correcto para tu AMI. No agregues espacios adicionales al escribir el comando anterior.
-
Selecciona Guardar.
-
Inicia la instancia y, a continuación, usa SSH para conectarte a ella.
De forma predeterminada, el comando de datos de usuario se pone en marcha una vez para cada instancia. Los pasos anteriores cambian el comportamiento predeterminado para agregar la clave pública en cada reinicio, parada o inicio de la instancia. Para restaurar el comportamiento predeterminado, elimina los comandos de los datos de usuario personalizados. Se recomienda permitir que los datos de usuario se ejecuten después del primer arranque de la instancia. Puedes usar la API ModifyInstanceAttribute para modificar los datos de usuario de una instancia. Para restringir el acceso a la API ModifyInstanceAttribute, utiliza las políticas de AWS Identity and Access Management (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?
- Idioma
- Español
Vídeos relacionados


Contenido relevante
- preguntada hace 7 meses
- preguntada hace un año
- preguntada hace un año
- preguntada hace 2 meses
- Respuesta aceptadapreguntada hace 10 meses