ฉันได้ให้คำตอบหนึ่งข้อซึ่งใช้ปริมาณ EBS เพื่อรับที่คีย์สาธารณะของ ssh แต่นี่เป็นอีกวิธีหนึ่งที่คุณสามารถทำได้โดยเริ่มต้นอินสแตนซ์ EC2 ชั่วคราวด้วยสคริปต์ข้อมูลผู้ใช้ที่ส่งคีย์สาธารณะไปยังคอนโซลเอาต์พุต นี่คือขั้นตอน:
บันทึกรหัสต่อไปนี้ไปยังไฟล์ที่มีชื่อoutput-ssh-key.userdata
อยู่ในเครื่องคอมพิวเตอร์ของคุณ อย่าเรียกใช้คำสั่งเหล่านี้ในท้องถิ่น!
#!/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
ใช้งานอินสแตนซ์ Ubuntu 10.04 LTS ที่มีไฟล์ด้านบนเป็นสคริปต์ข้อมูลผู้ใช้ ระบุ keypair ที่คุณต้องการดึงกุญแจสาธารณะ ssh:
ec2-run-instances \
--key YOURKEYPAIRHERE \
--instance-type t1.micro \
--instance-initiated-shutdown-behavior terminate \
--user-data-file output-ssh-key.userdata \
ami-ab36fbc2
ทำการร้องขอเอาต์พุตคอนโซลจากอินสแตนซ์จนกว่าจะแสดงคีย์ ssh สาธารณะของคุณ ระบุ id อินสแตนซ์ที่ส่งคืนจากคำสั่ง run-instance:
ec2-get-console-output YOURINSTANCEID | grep SSHKEY: | cut -f3- -d:
ภายใน 2-10 นาทีคุณจะได้ผลลัพธ์ดังนี้:
========================================================================
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)
อินสแตนซ์ชั่วคราวจะยุติตัวเองโดยอัตโนมัติภายในไม่ถึงหนึ่งชั่วโมง แต่คุณสามารถยกเลิกได้ด้วยตนเองหากคุณต้องการตรวจสอบให้แน่ใจว่าคุณไม่ถูกเรียกเก็บเงินเกินกว่าสองเซ็นต์ซึ่งจะมีค่าใช้จ่ายในการทำงาน