publickey - ¿Verificación de huella digital SSH para el servidor Amazon AWS EC2 con ECDSA?
putty aws (2)
Aquí hay dos soluciones que me funcionaron durante la creación del sistema EC2.
Solución 1: utilice el panel de Amazon EC2
- Vaya a https://console.aws.amazon.com
- Toca el enlace "EC2".
- Toca "Instancias" en la columna de la izquierda
- Toca el nombre de la instancia que quieras
- Toque el botón de selección "Acciones" y elija "Obtener registro del sistema" (también conocido como "Salida de la consola")
- En la salida de la consola, debería ver las claves que se generan
Solución 2: utilice la línea de comando de AWS EC2
Puede usar el comando aws
o el comando ec2-get-console-output
. Ambos están disponibles para su descarga desde Amazon.
Para usar su archivo pem de clave privada EC2, archivo pem de certificado, región e instancia:
ec2-get-console-output /
--private-key pk-ABCDEF1234567890.pem /
--cert cert-ABCDEF1234567890.pem /
--region us-east-1c /
i-e706689a
El resultado muestra las huellas dactilares de la clave de host ssh así:
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 puede obtener los registros de la consola. Para obtener una solución más amplia que funcione en cualquier momento, consulte la respuesta de Martin.
Cuando creo un nuevo servidor Amazon EC2, me conecto 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 original de la consola de creación, ya que el log puede eliminarse después de un reinicio del sistema o durante un script de instalación de sistema grande que genera mucho output o la conexión es a un sistema anterior con claves que no fueron rastreadas en el momento de la creación.
Como cubre la respuesta de @ joelparkerhenderson, puede recopilar la huella digital de la clave del host desde el registro de inicio inicial del servidor, cuando se generan las claves del host (mediante el script cloud-init
):
Si no puede recopilar 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 de intermediarios.
Cuando está en la terminal de la instancia de confianza (la que usted conoce, huellas dactilares), puede usar los siguientes comandos para recolectar 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 busque las claves para la nueva instancia temporal, usando su registro de inicio inicial. Conéctese a la instancia temporal de 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 la red privada de Amazon. Después de eso, puedes descartar la instancia temporal.
He preparado la Guía para conectarme a la instancia EC2 de forma segura usando WinSCP .