Verificación de huellas dactilares SSH para Amazon AWS EC2 server con ECDSA?


Cuando creo un nuevo servidor Amazon EC2, me conecto a él usando ssh como de costumbre.

Veo la advertencia típica:

$ ssh myserver  
The authenticity of host 'ec2-12-34-567-890.compute-1.amazonaws.com (12.34.567.890)'     can't be established.
ECDSA key fingerprint is 31:66:15:d2:19:41:2b:09:8a:8f:9f:bd:de:c6:ff:07.
Are you sure you want to continue connecting (yes/no)? 

¿Cómo verifico la huella digital antes de iniciar sesión?

Idealmente, una respuesta se basa en algo además del registro de la consola de creación original because porque el registro puede eliminarse después de un reinicio del sistema, o durante un script de instalación del sistema grande que genera una gran cantidad de salida, o la conexión es a un sistema anterior con claves que no se rastrearon en el tiempo de la creación.

Author: joelparkerhenderson, 2012-12-10

2 answers

Como cubre la respuesta de @joelparkerhenderson, puede recopilar la huella digital de la clave del host del registro de inicio inicial del servidor, cuando se generan las claves del host (mediante el script cloud-init):

introduzca la descripción de la imagen aquí

Si no obtiene las claves de esta manera, puede obtenerlas conectándose a su instancia de destino desde otra instancia de confianza dentro de la red privada de Amazon, manteniéndose así a salvo de los ataques man-in-the-middle.

Cuando está en la instancia de confianza (la que conoce huellas dactilares para) terminal, puede usar los siguientes comandos para recopilar huellas dactilares (172.33.31.199 es la IP privada):

$ ssh-keyscan 172.33.31.199 > ec2key
$ ssh-keygen -l -f ec2key
2048 02:fc:a5:ff:97:dd:41:63:bb:88:8b:29:4e:75:23:ed 172.33.31.199 (RSA)
256 ea:bc:4d:5f:ae:00:48:75:45:ba:97:43:fe:e1:a3:e9 172.33.31.199 (ECDSA)

Si no tiene otra instancia, cuyas huellas dactilares conoce, cree una nueva instancia temporal, solo con el propósito de recopilar las claves. Primero encuentre claves para la nueva instancia temporal, usando su registro de inicio inicial. Conéctese a la instancia temporal desde la red pública. A continuación, recopile las claves de la instancia de destino conectándose a ella desde la instancia temporal, a través de Amazon privado red. Después de eso, puede descartar la instancia temporal.

He preparado Guía para conectarse a la instancia EC2 de forma segura usando WinSCP.

 27
Author: Martin Prikryl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-05 09:09:19

Aquí hay dos soluciones que funcionaron para mí durante la creación del sistema EC2.

Solución 1: Utilice el panel de Amazon EC2

  • Vaya a https://console.aws.amazon.com
  • Toque el enlace "EC2".
  • Toque "Instancias" en la columna izquierda
  • Toque el nombre de la instancia que desee
  • Toque el botón seleccionar " Acciones "y elija" Obtener registro del sistema "(también conocido como"Salida de consola")
  • En la salida de la consola, debería ver las teclas se está generando

Solución 2: Utilice la línea de comandos AWS EC2

Puede usar el comando aws o el comando ec2-get-console-output. Ambos están disponibles para su descarga en Amazon.

Para usar el archivo pem de clave privada EC2, el archivo pem de certificado, la región y la instancia:

ec2-get-console-output \
  --private-key pk-ABCDEF1234567890.pem \
  --cert cert-ABCDEF1234567890.pem \
  --region us-east-1c \
  i-e706689a   

La salida muestra las huellas dactilares de la clave del host ssh de esta manera:

ec2: -----BEGIN SSH HOST KEY FINGERPRINTS-----
ec2: 1024 e0:79:1e:ba:2e:3c:71:87:2c:f5:62:2b:0d:1b:6d:7b  root@ip-10-243-118-182 (DSA)
ec2: 256 31:66:15:d2:19:41:2b:09:8a:8f:9f:bd:de:c6:ff:07  root@ip-10-243-118-182 (ECDSA)
ec2: 2048 ce:ec:3b:d3:34:3f:f3:45:76:81:9e:76:7a:d9:f5:e8  root@ip-10-243-118-182 (RSA)
ec2: -----END SSH HOST KEY FINGERPRINTS-----

La herramienta aws funciona de manera similar.

Nota: estas soluciones solo funcionan durante el tiempo de creación, o cuando se puede obtener el registros de consola. Para una solución más amplia que funciona en cualquier momento, consulte la respuesta de Martin.

 17
Author: joelparkerhenderson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-18 20:32:41