Ya proporcioné una respuesta que usa volúmenes EBS para obtener la clave pública ssh, pero aquí hay otra forma de obtenerla iniciando una instancia EC2 temporal con un script de datos de usuario que envía la clave pública a la salida de la consola. Aquí están los pasos:
Guarde el siguiente código en un archivo nombrado output-ssh-key.userdata
en su computadora local. ¡NO EJECUTE ESTOS MANDOS LOCALMENTE!
#!/bin/bash -ex
exec> >(tee /var/log/user-data.log|logger -t user -s 2>/dev/console) 2>&1
adminkey=$(GET instance-data/latest/meta-data/public-keys/ |
perl -ne 'print $1 if /^0=[^a-z0-9]*([-.@\w]*)/i')
cat <<EOF
SSHKEY:========================================================================
SSHKEY:HERE IS YOUR PUBLIC SSH KEY FOR KEYPAIR "$adminkey":
SSHKEY:$(cat /home/ubuntu/.ssh/authorized_keys)
SSHKEY:========================================================================
SSHKEY:Halting in 50min ($(date --date='+50 minutes' +"%Y-%m-%d %H:%M UTC"))
EOF
sleep 3000
halt
Ejecute una instancia de Ubuntu 10.04 LTS con el archivo anterior como un script de datos de usuario. Especifique el par de claves para el que desea recuperar la clave ssh pública:
ec2-run-instances \
--key YOURKEYPAIRHERE \
--instance-type t1.micro \
--instance-initiated-shutdown-behavior terminate \
--user-data-file output-ssh-key.userdata \
ami-ab36fbc2
Siga solicitando la salida de la consola de la instancia hasta que muestre su clave ssh pública. Especifique el id de instancia devuelto por el comando run-Instances:
ec2-get-console-output YOURINSTANCEID | grep SSHKEY: | cut -f3- -d:
Dentro de 2-10 minutos obtendrá una salida como esta:
========================================================================
HERE IS YOUR PUBLIC SSH KEY FOR KEYPAIR "erich":
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6rn8cl41CkzaH4ZBhczOJZaR4xBBDI1Kelc2ivzVvCB
THcdJRWpDd5I5hY5W9qke9Tm4fH3KaUVndlcP0ORGvS3PAL4lTpkS4D4goMEFrwMO8BG0NoE8sf2U/7g
aUkdcrDC7jzKYdwleRCI3uibNXiSdeG6RotClAAp7pMflDVp5WjjECDZ+8Jzs2wasdTwQYPhiWSiNcfb
fS97QdtROf0AcoPWElZAgmabaDFBlvvzcqxQRjNp/zbpkFHZBSKp+Sm4+WsRuLu6TDe9lb2Ps0xvBp1F
THlJRUVKP2yeZbVioKnOsXcjLfoJ9TEL7EMnPYinBMIE3kAYw3FzZZFeX3Q== erich
========================================================================
Halting in 50min (2011-12-20 05:58 UTC)
La instancia temporal terminará automáticamente en menos de una hora, pero puede terminarla usted mismo si desea asegurarse de que no se le cobre más de los dos centavos que costará ejecutarla.