Bagaimana cara mengubah pasangan kunci untuk instance EC2 saya di konsol manajemen AWS? Saya dapat menghentikan instance, saya dapat membuat pasangan kunci baru, tetapi saya tidak melihat tautan untuk mengubah pasangan kunci instance.
Bagaimana cara mengubah pasangan kunci untuk instance EC2 saya di konsol manajemen AWS? Saya dapat menghentikan instance, saya dapat membuat pasangan kunci baru, tetapi saya tidak melihat tautan untuk mengubah pasangan kunci instance.
Jawaban:
Jawaban ini berguna jika Anda tidak lagi memiliki akses SSH ke server yang ada (mis. Anda kehilangan kunci privat Anda).
Jika Anda masih memiliki akses SSH, silakan gunakan salah satu jawaban di bawah ini.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair
Inilah yang saya lakukan, terima kasih pada posting blog Eric Hammond:
/dev/xvda1
volumenya (sebut saja volume A) - lihat di sini/dev/xvdf
(atau /dev/sdf
)SSH ke instance mikro baru dan pasang volume A ke /mnt/tmp
$ sudo mount / dev / xvdf1 / mnt / tmp
Salin ~/.ssh/authorized_keys
ke/mnt/tmp/home/ubuntu/.ssh/authorized_keys
/dev/xvda
.pem
file baru AndaItu dia.
mkdir /mnt/tmp
dan kemudian mount /dev/xvdf /mnt/tmp
harus melakukan trik untuk # 5. Dan jangan lupa langkah 13. mungkin ada rm ~/.ssh/known_hosts
di kotak Anda terhubung dari.
.ssh/authorized_keys
file aslinya .
Setelah instance dimulai, tidak ada cara untuk mengubah keypair yang terkait dengan instance pada tingkat data meta, tetapi Anda dapat mengubah kunci ssh apa yang Anda gunakan untuk menghubungkan ke instance.
Ada proses startup di sebagian besar AMI yang mengunduh kunci ssh publik dan menginstalnya dalam file .ssh / official_keys sehingga Anda dapat ssh sebagai pengguna yang menggunakan kunci ssh pribadi yang sesuai.
Jika Anda ingin mengubah kunci ssh apa yang Anda gunakan untuk mengakses sebuah instance, Anda akan ingin mengedit file otor_keys pada instance itu sendiri dan mengonversi ke kunci publik ssh baru Anda.
File Authorized_key berada di bawah subdirektori .ssh di bawah direktori home dari pengguna yang Anda masuki. Bergantung pada AMI yang Anda jalankan, mungkin ada di salah satu dari:
/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
/root/.ssh/authorized_keys
Setelah mengedit file yang diotorisasi, selalu gunakan terminal yang berbeda untuk mengonfirmasi bahwa Anda dapat ssh ke instance sebelum Anda memutuskan sambungan dari sesi yang Anda gunakan untuk mengedit file. Anda tidak ingin membuat kesalahan dan mengunci diri Anda sepenuhnya dari instance.
Saat Anda berpikir tentang ssh keypair pada EC2, saya sarankan mengunggah kunci publik ssh pribadi Anda ke EC2 daripada meminta Amazon membuat kunci pas untuk Anda.
Inilah artikel yang saya tulis tentang ini:
Mengunggah Kunci ssh Pribadi ke Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys
Ini hanya berlaku untuk instance baru yang Anda jalankan.
.pem
file kunci pribadi pada Mac saya, namun ssh -i key.pem
tidak mengautentikasi (izin ditolak (publickey)). Dalam Konsol Manajemen EC2 di bawah Nama Pasangan Kunci, tidak tercantum apa pun. Ini mengkhawatirkan saya. Bagaimana saya bisa mengatur ini? Tampaknya berdasarkan pada Konsol Manajemen bahwa tidak ada kunci tombol yang telah saya konfigurasi yang ditugaskan ke instance!
Jalankan perintah ini setelah Anda mengunduh pem AWS Anda.
ssh-keygen -f YOURKEY.pem -y
Kemudian buang output ke authorized_keys
.
Atau salin file pem ke instance AWS Anda dan jalankan perintah berikut
chmod 600 YOURKEY.pem
lalu
ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys
Instruksi dari dukungan AWS EC2:
ini akan menyimpan file otor_keys yang diperbarui
sekarang coba buka sesi SSH baru untuk instance Anda menggunakan pai kunci baru Anda
Ketika Anda telah mengonfirmasi bahwa Anda dapat menggunakan SSH ke instance menggunakan pasangan kunci baru, Anda dapat vi. Ssh / otor_key dan menghapus kunci lama.
Jawaban untuk komentar Shaggie:
Jika Anda tidak dapat terhubung ke instance (mis. Kunci rusak) daripada menggunakan konsol AWS untuk melepaskan volume ( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html ) dan pasang kembali ke instance yang berfungsi, kemudian ubah kunci pada volume dan pasang kembali ke instance sebelumnya.
Saya perhatikan bahwa ketika dikelola oleh Elastic Beanstalk, Anda dapat mengubah pasangan kunci EC2 yang aktif. Di bawah Elastic Beanstalk> Configuration> Security, pilih kunci baru dari drop-down pasangan kunci EC2 . Anda akan melihat pesan ini menanyakan apakah Anda yakin:
EC2KeyName: Perubahan pada opsi pengaturan EC2KeyName tidak akan langsung berlaku. Setiap instance EC2 Anda yang ada akan diganti dan pengaturan baru Anda akan mulai berlaku.
Contoh saya sudah dihentikan ketika saya melakukan ini. Kemudian dimulai, diakhiri, dan mulai lagi. Rupanya "mengganti" berarti mengakhiri dan membuat instance baru. Jika Anda telah memodifikasi volume booting Anda, buat AMI terlebih dahulu, kemudian tentukan AMI itu di Elastic Beanstalk> Configuration> Instances form yang sama dengan Custom AMI ID . Ini juga memperingatkan tentang mengganti instance EC2.
Setelah Anda memodifikasi pasangan kunci EC2 Anda dan ID AMI Kustom, dan setelah melihat peringatan tentang keduanya, klik Simpan untuk melanjutkan.
Ingatlah bahwa alamat IP berubah ketika instance dibuat kembali sehingga Anda harus mengambil alamat IP baru dari konsol EC2 untuk digunakan saat menghubungkan melalui SSH.
Saya melalui pendekatan ini, dan setelah beberapa waktu, berhasil membuatnya bekerja. Kurangnya perintah sebenarnya membuatnya sulit, tapi saya mengetahuinya. NAMUN - pendekatan yang lebih mudah ditemukan dan diuji segera setelah:
Jika langkah-langkah di bawah ini diikuti, itu akan menghemat banyak waktu dan tidak perlu berhenti menjalankan instance.
Hanya itu saja. Selamat menikmati :)
Saya percaya pendekatan paling sederhana adalah:
Jika Anda menggunakan platform ElasticBeanstalk, Anda dapat mengubah kunci dengan membuka:
Ini akan menghentikan instance saat ini dan membuat yang baru dengan kunci / pengaturan yang dipilih.
Ada dua skenario yang ditanyakan dalam pertanyaan ini: -
1) Anda tidak memiliki akses ke file .pem itu sebabnya Anda ingin membuat yang baru.
2) Anda punya. akses file pem dengan Anda tetapi Anda hanya ingin mengubah atau membuat file .pem baru untuk beberapa kerentanan atau tujuan keamanan .
Jadi, jika Anda kehilangan kunci, Anda dapat menggulir ke atas dan melihat jawaban lain . Tetapi jika Anda hanya mengubah file .pem Anda untuk tujuan keamanan ikuti langkah-langkah: -
1) Buka login konsol AWS dan buat file .pem baru dari bagian pasangan kunci di sana. Ini akan secara otomatis mengunduh file .pem ke dalam PC Anda
2) ubah izin menjadi 400 jika Anda menggunakan Linux / ubuntu, tekan perintah di bawah ini
chmod 400 yournewfile.pem
3) Hasilkan RSA dari file yang baru diunduh di mesin lokal Anda
ssh-keygen -f yournewfile.pem -y
4) Salin kode RSA dari sini
5) Sekarang SSH ke instance Anda melalui file .pem sebelumnya
ssh -i oldpemfileName.pem username@ipaddress
sudo vim ~/.ssh/authorized_keys
6) Berikan spasi satu-dua baris dan tempel RSA yang disalin dari file baru di sini lalu simpan file tersebut
7) Sekarang file .pem baru Anda terhubung dengan instance yang berjalan
8) Jika Anda ingin menonaktifkan akses file .pem sebelumnya maka cukup edit
sudo vim ~/.ssh/authorized_keys
file dan hapus atau ubah RSA sebelumnya dari sini.
Catatan: - Hapus dengan hati-hati agar RSA yang baru dibuat tidak berubah.
Dengan cara ini, Anda dapat mengubah / menghubungkan file .pem baru dengan instance Anda yang sedang berjalan.
Anda dapat mencabut akses ke file .pem yang dibuat sebelumnya karena tujuan keamanan.
Semoga ini bisa membantu!
Solusi paling sederhana adalah menyalin isi
~/.ssh/id_rsa.pub
ke dalam instansi_kunci AWS instance Anda di
~/.ssh/authorized_keys
Ini akan memungkinkan Anda untuk ssh ke instance EC2 tanpa menentukan file pem untuk perintah ssh. Anda dapat menghapus semua kunci lain setelah Anda menguji menghubungkannya.
Jika Anda perlu membuat kunci baru untuk membaginya dengan orang lain, Anda dapat melakukannya dengan:
ssh-keygen -t rsa
yang akan membuat file private key.pem, dan Anda bisa mendapatkan kunci publik itu dengan:
ssh-keygen -f private_key.pem -y > public_key.pub
Siapa pun yang memiliki private_key.pem akan dapat terhubung
ssh user@host.com -i private_key.pem
~/.ssh/authorized_keys
ketika saya bahkan tidak dapat SSH aws misalnya?
Anda tidak perlu memutar perangkat root dan mengubah Kunci Publik SSH authorized_keys
. Untuk itu dapat memanfaatkan data pengguna untuk menambahkan Anda kunci ssh ke instance apa pun. Untuk itu pertama Anda perlu membuat KeyPair baru menggunakan konsol AWS atau melalui ssh-keygen.
ssh-keygen -f YOURKEY.pem -y
Ini akan menghasilkan kunci publik untuk SSH KeyPair baru Anda, menyalin kunci publik ini dan menggunakannya dalam skrip di bawah ini.
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
/bin/echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6xigPPA/BAjDPJFflqNuJt5QY5IBeBwkVoow/uBJ8Rorke/GT4KMHJ3Ap2HjsvjYrkQaKANFDfqrizCmb5PfAovUjojvU1M8jYcjkwPG6hIcAXrD5yXdNcZkE7hGK4qf2BRY57E3s25Ay3zKjvdMaTplbJ4yfM0UAccmhKw/SmH0osFhkvQp/wVDzo0PyLErnuLQ5UoMAIYI6TUpOjmTOX9OI/k/zUHOKjHNJ1cFBdpnLTLdsUbvIJbmJ6oxjSrOSTuc5mk7M8HHOJQ9JITGb5LvJgJ9Bcd8gayTXo58BukbkwAX7WsqCmac4OXMNoMOpZ1Cj6BVOOjhluOgYZbLr" >> /home/hardeep/.ssh/authorized_keys
--//
Setelah restart mesin akan memiliki kunci publch SSH yang ditentukan. Hapus data pengguna setelah restart pertama. Baca lebih lanjut tentang data pengguna saat startup .
Peringatan: Jangan lupa untuk menghapus data pengguna lagi. Kalau tidak, kunci ini akan ditekan pada setiap mulai contoh. Petunjuk langkah demi langkah .
#cloud-config
bootcmd:
- echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys
Saya telah mencoba langkah-langkah di bawah ini dan berhasil tanpa menghentikan instance. Persyaratan saya adalah - karena saya telah mengubah mesin klien saya, file .pem yang lama tidak memungkinkan saya untuk masuk ke instance EC2.
Anda akan melihat kunci lama Anda di file itu.
ssh-keygen -f YOUR_PEM_FILE.pem -y Ini akan menghasilkan kunci. Tambahkan kunci ke ~ / .ssh / otor_keys dibuka di langkah # 1. Tidak perlu menghapus kunci lama.
Dari konsol AWS, buat pasangan kunci baru. Simpan di mesin baru Anda. Ubah nama menjadi file pem yang lama - alasannya adalah file pem yang lama masih terkait dengan instance EC2 di AWS.
Semua selesai.
Saya dapat masuk ke AWS ec2 dari mesin klien baru saya.
Anda memiliki beberapa opsi untuk mengganti kunci instance EC2 Anda.
Karena opsi pertama dapat ditemukan dengan mudah di jawaban atau di mesin pencari pilihan Anda, saya ingin fokus pada System Manager.
Systems Manager
Automation
sebelah kiri.Execute Automation
AWSSupport-TroubleshootSSH
(biasanya ada di halaman terakhir)Anda dapat menemukan informasi lebih lanjut tentang Dokumentasi AWS Resmi
Jawaban Yegor256 bekerja untuk saya, tetapi saya pikir saya hanya akan menambahkan beberapa komentar untuk membantu mereka yang tidak begitu mahir dalam memasang drive (seperti saya!):
Amazon memberi Anda pilihan tentang apa yang ingin Anda beri nama volume saat Anda melampirkannya. Anda telah menggunakan nama dalam kisaran dari / dev / sda - / dev / sdp Versi Ubuntu yang lebih baru kemudian akan mengubah nama apa yang Anda masukkan di sana ke / dev / xvd (x) atau sesuatu untuk efek itu.
Jadi bagi saya, saya memilih / dev / sdp sebagai nama nama mount di AWS, kemudian saya masuk ke server, dan menemukan bahwa Ubuntu telah mengubah nama volume saya menjadi / dev / xvdp1). Saya kemudian harus memasang drive - bagi saya saya harus melakukannya seperti ini:
mount -t ext4 xvdp1 /mnt/tmp
Setelah melewati semua rintangan itu, saya dapat mengakses file saya di / mnt / tmp
Ini hanya akan berfungsi jika Anda memiliki akses ke instance yang ingin Anda ubah / tambahkan kunci. Anda dapat membuat pasangan kunci baru. Atau jika Anda sudah memiliki pasangan kunci, maka Anda dapat menempelkan kunci publik dari pasangan baru dalam file Authorized_key pada instance Anda.
vim .ssh /otorized_keys
Sekarang Anda dapat menggunakan kunci pribadi untuk pasangan itu dan masuk.
Semoga ini membantu.
jika Anda tidak dapat login di VM dan menghapus kunci ssh Anda dan Anda juga dapat mengubah pasangan kunci EC2 Anda menggunakan langkah-langkah di bawah ini. Lakukan langkah demi langkah 1) menghentikan instance EC2 Anda. 2) mengambil snapshot VM dan penyimpanan. 3) buat VM baru sambil membuatnya pilih snapshot Anda dan buat VM dari Snapshot Anda. 4) ketika pembuatan VM mengunduh keypair Anda. 5) begitu VM UP Anda dapat ssh dengan pasangan kunci baru dan data Anda juga akan kembali.
Apa yang bisa kamu lakukan ...
Buat Profil Instance baru / Peran yang memiliki kebijakan AmazonEC2RoleForSSM terlampir.
Lampirkan Profil Instance ini ke instance.
Terima kasih untuk tipsnya kawan. Pasti akan mengingatnya ketika saya perlu mengistirahatkan pasangan kunci. Namun, demi efisiensi dan kemalasan, saya telah menemukan sesuatu yang lain:
Semoga ini bisa berguna bagi Anda dan menghemat waktu Anda serta meminimalkan jumlah rambut putih yang Anda dapatkan dari hal-hal seperti ini :)