Saya memiliki instance linux amazon ec2 yang terkait dengan keypair (p1) dan saya telah mengunduh kunci pribadi ke desktop rumah saya. Sekarang di tempat kerja, saya membuat keypair (p2) di desktop pekerjaan saya dan mengimpor kunci publik ke Amazon melalui konsol AWS.
Di rumah, saya ingin menambahkan kunci publik keypair p2 yang akan ditambahkan ke authorized_keys
instance AMI saya (yang saat ini hanya dapat saya akses dari rumah). Namun, saya lupa membawa kunci publik p2, jadi mungkinkah mengekspor kunci publik ini dari Amazon.
Perintah ssh-keygen yang benar adalah:
sumber
chmod 400 your_private_key.pem
jika Anda mendapatkan "Izin kesalahan terlalu terbuka"Saya sudah memberikan satu jawaban yang menggunakan volume EBS untuk mendapatkan kunci publik ssh, tapi inilah cara lain yang bisa Anda lakukan dengan memulai contoh EC2 sementara dengan skrip data pengguna yang mengirimkan kunci publik ke output konsol. Berikut langkah-langkahnya:
Simpan kode berikut ke file yang bernama
output-ssh-key.userdata
di komputer lokal Anda. JANGAN LARI PERINTAH INI SECARA LOKAL!Jalankan instance Ubuntu 10.04 LTS stok dengan file di atas sebagai skrip data pengguna. Tentukan keypair tempat Anda ingin mengambil kunci ssh publik:
Terus meminta output konsol dari instance sampai menunjukkan kunci ssh publik Anda. Tentukan id instance yang dikembalikan dari perintah run-instances:
Dalam 2-10 menit Anda akan mendapatkan output seperti ini:
Mesin virtual sementara akan secara otomatis berakhir dalam waktu kurang dari satu jam, tetapi Anda dapat menghentikannya sendiri jika Anda ingin memastikan bahwa Anda tidak dikenai biaya lebih dari dua sen yang diperlukan untuk menjalankannya.
sumber
Jika Anda memiliki kunci SSH pribadi, Anda dapat membuat ulang komponen kunci publik hanya dengan menjalankan perintah ssh-keygen berikut :
Itu adalah bagian yang sederhana ... Konsol AWS dan API tidak mendukung mendorong 2 keypairs ketika memulai instance EC2. Ini adalah latihan yang tersisa untuk administrator sistem lakukan melalui cara lain.
Jika Anda memiliki akses ke kunci identitas yang telah diotorisasi, Anda cukup melakukan perintah ssh-copy-id berikut :
Ini akan menyalin kunci publik yang diberikan ke server dan ke dalam
~user/.ssh/authorized_keys
file secara otomatis untuk Anda dan memastikan izin yang tepat pada file tersebut.Cara yang lebih elegan adalah memasukkan kunci identitas tambahan dalam proses manajemen konfigurasi Anda. Dalam kasus saya ini memerlukan menambahkan kunci tambahan untuk konfigurasi Wayang untuk node.
Sebagai catatan, preferensi pribadi tetapi akan menggunakan metode manajemen kunci SSH yang lebih baik daripada hanya harus memasukkan kunci terpisah untuk lokasi kerja dan rumah. Seperti yang saya sebutkan dalam pertanyaan sebelumnya saya menjaga kunci saya pada drive USB yang saya simpan bukan di komputer mana pun yang saya gunakan.
sumber
Opsi lain adalah menambahkan skrip pendek di user_data yang baru saja menambahkan kunci ssh lain untuk di-root:
Kemudian Anda dapat login ke mesin sebagai root dengan
ssh -l root -i <KEYFILE> URL
dan hanya membaca kunci dari otor_keys pengguna ec2_user, ubuntu atau bagaimanapun disebut.Satu-satunya hal - Anda perlu membuat mesin dapat dijangkau publik, dan memastikan akses ke port 22 dimungkinkan dari luar.
sumber