Ich habe bereits eine Antwort angegeben, die EBS-Volumes verwendet, um an den öffentlichen Schlüssel ssh zu gelangen. Auf andere Weise können Sie jedoch eine temporäre EC2-Instanz mit einem Benutzerdatenskript starten, das den öffentlichen Schlüssel an die Konsolenausgabe sendet. Hier sind die Schritte:
Speichern Sie den folgenden Code in einer Datei mit dem Namen output-ssh-key.userdata
auf Ihrem lokalen Computer. LAUFEN SIE DIESE BEFEHLE NICHT LOKAL AUS!
#!/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
Führen Sie eine Ubuntu 10.04 LTS-Instanz mit der obigen Datei als Benutzerdatenskript aus. Geben Sie das Schlüsselpaar an, für das Sie den öffentlichen SSH-Schlüssel abrufen möchten:
ec2-run-instances \
--key YOURKEYPAIRHERE \
--instance-type t1.micro \
--instance-initiated-shutdown-behavior terminate \
--user-data-file output-ssh-key.userdata \
ami-ab36fbc2
Fordern Sie so lange die Konsolenausgabe von der Instanz an, bis Ihr öffentlicher SSH-Schlüssel angezeigt wird. Geben Sie die vom Befehl run-instance zurückgegebene Instanz-ID an:
ec2-get-console-output YOURINSTANCEID | grep SSHKEY: | cut -f3- -d:
Innerhalb von 2-10 Minuten erhalten Sie folgende Ausgabe:
========================================================================
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)
Die temporäre Instanz wird automatisch in weniger als einer Stunde beendet. Sie können sie jedoch selbst beenden, wenn Sie sicherstellen möchten, dass Ihnen nicht mehr als die zwei Cent in Rechnung gestellt werden, die die Ausführung kosten wird.