Ubah pasangan kunci untuk instance EC2

408

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.

Michael Chen
sumber
1
Saya mengikuti langkah-langkah yang ditunjukkan dalam video ini dan berhasil youtube.com/watch?v=OF2AOekW4IE
Jonathan Nolasco Barrientos

Jawaban:

492

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:

  1. Hentikan instance EC2 yang sedang berjalan
  2. Lepaskan /dev/xvda1volumenya (sebut saja volume A) - lihat di sini
  3. Mulai instance t1.micro EC2 baru, menggunakan pasangan kunci baru saya. Pastikan Anda membuatnya di subnet yang sama , jika tidak, Anda harus menghentikan instance dan membuatnya lagi. - lihat disini
  4. Lampirkan volume A ke instance mikro baru, seperti /dev/xvdf(atau /dev/sdf)
  5. SSH ke instance mikro baru dan pasang volume A ke /mnt/tmp

    $ sudo mount / dev / xvdf1 / mnt / tmp

  6. Salin ~/.ssh/authorized_keyske/mnt/tmp/home/ubuntu/.ssh/authorized_keys

  7. Keluar
  8. Hentikan instans mikro
  9. Lepaskan volume A dari itu
  10. Pasang volume A kembali ke instance utama sebagai /dev/xvda
  11. Mulai contoh utama
  12. Login seperti sebelumnya, menggunakan .pemfile baru Anda

Itu dia.

yegor256
sumber
6
baru saja menyelamatkanku, kau seorang legenda!
Garry Welding
8
mkdir /mnt/tmpdan kemudian mount /dev/xvdf /mnt/tmpharus melakukan trik untuk # 5. Dan jangan lupa langkah 13. mungkin ada rm ~/.ssh/known_hostsdi kotak Anda terhubung dari.
naskah merek
21
Ini sangat bau ... Pertama-tama, lihat jawaban oleh Eric Hammond di bawah ini. Kedua: dijawab oleh Pat Mcb. Mereka melakukan hal yang sama tetapi tanpa membuang waktu Anda untuk melakukan solusi yang lucu. PS. Lihat juga stackoverflow.com/a/24143976/547223
kgadek
3
Saya menulis instruksi yang sangat spesifik di sini yang membangun jawaban ini tetapi pada dasarnya ide yang sama - gist.github.com/tamoyal/1b7ec4d3871b343d353d . Seperti dicatat @kgadek, ini agak kotor dan memakan waktu, tetapi ini merupakan opsi yang bagus jika Anda dikunci dari server yang ingin Anda ubah kunci dan jika Anda tidak ingin memutar salinan server itu. Dibutuhkan sekitar 5-10 menit per contoh, bukan satu jam.
Tony
4
Jawaban yang diposting oleh @Eric dan @Pat adalah solusi untuk orang-orang yang hanya ingin menggunakan pasangan kunci yang berbeda untuk instance mereka. Ini tidak membantu pengguna yang entah bagaimana kehilangan file pasangan kunci di tempat pertama. Tanpa melepaskan volume dan melampirkannya ke contoh lain bagaimana Anda akan mendapatkan kendali atas volume itu? Apalagi mengganti .ssh/authorized_keysfile aslinya .
sanjeev
187

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.

Eric Hammond
sumber
Aku dengan bodoh melakukan kesalahan itu, maksudku aku mengedit file yang berwenang dan logout. Sekarang, tidak bisa ssh kembali :(.
Adakah
11
aatifh: Inilah artikel yang saya tulis tentang cara keluar dari situasi itu: alestic.com/2011/02/ec2-fix-ebs-root
Eric Hammond
@EricHammond Ini mungkin tidak pada tempatnya tetapi Anda tampaknya tahu bagaimana ini semua bekerja ... Saya membuat contoh EC2 hari ini dan menerima .pemfile kunci pribadi pada Mac saya, namun ssh -i key.pemtidak 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!
Steven Lu
1
@StevenLu: Yap, utas komentar adalah tempat yang salah untuk mengajukan pertanyaan baru. Coba buat pertanyaan baru di serverfault.com (lebih tepat untuk masalah itu daripada stackoverflow).
Eric Hammond
4
Ini adalah satu-liner kecil yang bagus untuk menambahkan kunci Anda. Ini hanya menambah kunci pub normal Anda selain AWS yang dihasilkan, jadi jika tidak berfungsi, Anda tidak akan mengunci diri: stackoverflow.com/a/5654728/193494
Kevin C.
78

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
Pat Mcb
sumber
14
Ini hanya berfungsi jika Anda sudah memiliki akses ke sistem, kan? (seperti tidak kehilangan file .pem lama).
Daniel
5
Anda dapat menggunakan> alih-alih >> untuk mengganti pengguna saat ini alih-alih menambahkannya.
Adrian Lopez
Ini adalah jawaban yang benar dan paling sederhana. Tidak perlu memulai ulang, membuat instance baru, atau me-mount drive. Dapatkan saja .pem, keygen, dan tambahkan ke otor_hosts.
Spanky
Saya telah melakukan ini ssh-keygen -f YOURKEY.pem -y >> ~ / .ssh / official_keys tetapi sitll tidak dapat mengakses EC2 saya dengan kunci pubic baru.
manukyanv07
Saya menjalankan ini dan kunci lokal saya tidak berubah.
Luiz
50

Instruksi dari dukungan AWS EC2:

  1. Ubah pem login
  2. pergi ke Konsol EC2 Anda
  3. Di bawah JARINGAN & KEAMANAN, klik Pasangan Kunci Klik Buat Pasangan Kunci
  4. Beri nama pasangan kunci baru Anda, simpan file .pem. Nama pasangan kunci akan digunakan untuk terhubung ke instance Anda
  5. Buat koneksi SSH ke instance Anda dan tetap buka
  6. di PuttyGen, klik "Muat" untuk memuat file .pem Anda
  7. Biarkan tombol radio SSH-2 RSA dicentang. Klik "Simpan kunci pribadi" Anda akan mendapatkan peringatan jendela sembul, klik "Ya"
  8. klik "Simpan kunci publik" juga, jadi untuk menghasilkan kunci publik. Ini adalah kunci publik yang akan kami salin ke instance Anda saat ini
  9. Simpan kunci publik dengan nama pasangan kunci baru dan dengan ekstensi .pub
  10. Buka konten kunci publik di notepad
  11. salin konten di bawah "Komentar:" import-openssh-key "dan sebelum" ---- END SSH2 PUBLIC KEY ----
    Catatan - Anda perlu menyalin konten sebagai satu baris - hapus semua baris baru
  12. pada instance Anda yang terhubung, buka file otor_keys Anda menggunakan alat vi. Jalankan perintah berikut: vi .ssh / authorized_key Anda juga harus melihat kunci publik asli dalam file
  13. pindahkan kursor Anda pada file ke akhir konten kunci publik pertama Anda: ketik "i" untuk dimasukkan
  14. pada baris baru, ketik "ssh-rsa" dan tambahkan spasi sebelum Anda menempelkan konten kunci publik, spasi, dan nama file .pem (tanpa .pem) Catatan - Anda harus mendapatkan baris dengan format yang sama dengan baris sebelumnya
  15. tekan tombol Esc, lalu ketik: wq!

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.

Elia Weiss
sumber
6
Harus menjadi jawaban terbaik
2
Bagaimana jika kunci lama rusak dan Anda tidak dapat terhubung ke instance melalui dempul karena Anda tidak memiliki file ppk lama ???
Shaggie
3
bagaimana jika Anda tidak memiliki akses SSH, maka masalah ini.
Jayden Lawson
3
Jayden Lawson, bagaimana jika Anda tidak memiliki koneksi internet?
Elia Weiss
1
Mungkin saja pasangan kunci berbagi dengan orang lain dan sekarang perlu mengubah pasangan kunci sehingga orang tidak dapat login lagi, Atau banyak alasan lain seperti ini,
Harikrishna
38

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.

Mark Berry
sumber
1
Ini sekarang di bawah bagian 'Keamanan' dari konfigurasi.
Will Demaine
Terima kasih @ WillDemaine. Tidak menggunakan AWS saat ini jadi saya akan mengambil kata-kata Anda untuk itu dan menyetujui hasil edit!
Mark Berry
31

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:

  1. Simpan instance Anda sebagai AMI (reboot atau tidak, saya sarankan reboot). Ini hanya akan berfungsi jika EBS didukung.
  2. Kemudian, cukup mulai instance dari AMI ini dan tetapkan Keyfile baru Anda.
  3. Pindahkan IP elastis Anda (jika ada) ke instance baru Anda, dan Anda selesai.
OldGreg
sumber
Ini benar-benar bekerja untuk saya setelah saya secara tidak sengaja menghapus ~ / .ssh
morri
Saya melakukan hal yang sama dan berhasil, sekarang saya bisa masuk dengan pem baru. Tapi saya masih bisa login dengan pem yang lama. Jadi sekarang 2 pems valid.
Vitaly
FYI ini adalah metode GUI cepat yang mudah untuk memutar EC2 baru dengan kunci berbeda jika sibuk tetapi karena @vitaly menemukan Anda memiliki kunci pem yang lama juga valid, perlu pergi ke /home/ec2-user/.ssh/authorized_keys dan hapus kunci pem lama dari file. Terima kasih untuk metode penggantian tombol Pem cepat yang bagus dan mudah ketika tidak punya waktu.
Blu Towers
Ini tidak berhasil untuk saya. AWS terus mengatakan kata sandi tidak tersedia dengan pesan lain yang menyebutkan bahwa jika instance dibuat dari AMI itu menggunakan kredensial gambar induk.
Brady
15

Jika langkah-langkah di bawah ini diikuti, itu akan menghemat banyak waktu dan tidak perlu berhenti menjalankan instance.

  1. Mulai instance t1.micro EC2 baru, menggunakan pasangan kunci baru. Pastikan Anda membuatnya di subnet yang sama , jika tidak, Anda harus menghentikan instance dan membuatnya lagi.
  2. SSH ke instance mikro baru dan salin konten ~ / .ssh / Authorized_keys suatu tempat di komputer Anda.
  3. Login ke instance utama dengan kunci ssh lama .
  4. Salin & ganti konten file dari titik 2 ke ~ / .ssh / otor_keys
  5. Sekarang Anda dapat masuk kembali hanya dengan kunci baru. Kunci lama tidak akan berfungsi lagi.

Hanya itu saja. Selamat menikmati :)

vinay saini
sumber
14

Saya percaya pendekatan paling sederhana adalah:

  1. Buat gambar AMI dari instance yang ada.
  2. Luncurkan instance EC2 baru menggunakan gambar AMI (disusun oleh langkah 1) dengan pasangan kunci baru.
  3. Masuk ke instance EC2 baru dengan kunci baru.
Sergey
sumber
@ Brady, apa yang tidak berfungsi sama sekali? membuat snapshot? meluncurkan contoh? Gabung?
Sergey
4
Saya tidak yakin apakah perubahan ini baru-baru ini atau tidak, tetapi ketika Anda membuat AMI dari instance yang telah memiliki kunci yang ditetapkan Anda harus memiliki kunci itu tersedia untuk masuk ke gambar AMI yang disalin, terlepas dari apakah atau tidak Anda menetapkan pasangan kunci yang berbeda selama pembuatan.
Brady
Ini bukan solusi, karena @Brady menyebutkan itu tidak berfungsi.
Greg Sansom
8

Jika Anda menggunakan platform ElasticBeanstalk, Anda dapat mengubah kunci dengan membuka:

  • Panel Pohon Kacang elastis
  • Konfigurasi
  • Contoh (gigi kanan atas)
  • Pasangan kunci EC2

Ini akan menghentikan instance saat ini dan membuat yang baru dengan kunci / pengaturan yang dipilih.

Vaelyr
sumber
2
Ini adalah jawaban sederhana di sini, asalkan Anda menggunakan ElasticBeanstalk.
Yuval Karmi
2
Peringatan ! Ini solusi berbahaya. AWS juga akan mengatur ulang penyimpanan (mis. HDD Virtual) yang terpasang pada instance itu (!!). Jadi, Anda harus melepaskan penyimpanan, dan, setelah memunculkan instance baru, pasang kembali itu alih-alih yang baru yang datang dengan instance baru. Tentu saja, yang terbaik adalah itu bukan volume yang dienkripsi (dan Anda belum kehilangan kuncinya ..)
JamesC
7

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!

Parveen yadav
sumber
2
Saya agak suka solusi ini karena tidak mengharuskan saya untuk membuat contoh baru dengan gambar AMI beku. Tetapi apakah metode ini dapat mengubah keypair-name terkait dari instance EC2 di dasbor EC2? @ Parveen yadav
kecanduan
6

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 [email protected] -i private_key.pem
snez
sumber
4
bagaimana saya bisa mengakses ~/.ssh/authorized_keysketika saya bahkan tidak dapat SSH aws misalnya?
prayagupd
3
Saya percaya baris terakhir Anda salah, Anda akan dapat terhubung hanya jika Anda memiliki kunci pribadi .. ssh -i private_key.pem [email protected]. Jika Anda ingin seseorang memberi Anda akses ke instance mereka, Anda dapat dengan aman membagikan kunci publik Anda kepada mereka dan mereka dapat menambahkannya ke
otor_key
5

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 .

Hardeep Singh
sumber
4
  • Buat kunci baru mis. Menggunakan Putty Key Generator
  • Hentikan contoh
  • Tetapkan contoh data pengguna untuk mendorong kunci publik ke server
  • Mulai contoh

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

masukkan deskripsi gambar di sini

Reto Höhener
sumber
1
Ini adalah cara resmi AWS untuk melakukannya, jadi gunakanlah untuk @reto. aws.amazon.com/premiumsupport/knowledge-center/…
Bevan
3

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.

  1. Masuk ke instance EC2 menggunakan file .pem lama Anda dari mesin lama. Buka ~ / .ssh / otor_keys

Anda akan melihat kunci lama Anda di file itu.

  1. 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.

  2. 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.

Tuan Bordoloi
sumber
3

Anda memiliki beberapa opsi untuk mengganti kunci instance EC2 Anda.

  1. Anda dapat mengganti kunci secara manual di file .ssh / otor_keys Namun ini mengharuskan Anda untuk benar-benar memiliki akses ke instance atau volume jika ini tidak dienkripsi.
  2. Anda dapat menggunakan Manajer Sistem AWS. Ini mengharuskan agen diinstal.

Karena opsi pertama dapat ditemukan dengan mudah di jawaban atau di mesin pencari pilihan Anda, saya ingin fokus pada System Manager.

  1. Buka Layanan Systems Manager
  2. Klik di Automationsebelah kiri.
  3. Klik Execute Automation
  4. Pilih AWSSupport-TroubleshootSSH(biasanya ada di halaman terakhir)

Anda dapat menemukan informasi lebih lanjut tentang Dokumentasi AWS Resmi

Hendric
sumber
1

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

Ryan
sumber
sebagai komentar ini harus ditambahkan sebagai komentar, bukan jawaban.
JDL
0

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.

skd
sumber
0

Masalah saya adalah, saya mencoba dengan IPdaripada publik DNS. Kemudian saya mencoba public DNSdan diselesaikan

vipin cp
sumber
0

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.

Raghunath Babalsure
sumber
0

Apa yang bisa kamu lakukan ...

  1. Buat Profil Instance baru / Peran yang memiliki kebijakan AmazonEC2RoleForSSM terlampir.

  2. Lampirkan Profil Instance ini ke instance.

  3. Gunakan SSM Session Manager untuk login ke instance.
  4. Gunakan keygen pada mesin lokal Anda untuk membuat pasangan kunci.
  5. Dorong bagian publik dari kunci itu ke instance menggunakan sesi SSM Anda.
  6. Keuntungan.
setan
sumber
0

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:

  1. Buat pasangan kunci baru Anda dan unduh kredensial
  2. Klik kanan instance Anda> Buat AMI Setelah selesai
  3. hentikan instans Anda (atau hentikan saja sampai Anda yakin dapat membuat yang lain dari AMI mengkilap Anda yang baru)
  4. Mulai instance EC2 baru dari AMI yang baru saja Anda buat dan tentukan pasangan kunci baru yang Anda buat pada langkah (1) di atas.

Semoga ini bisa berguna bagi Anda dan menghemat waktu Anda serta meminimalkan jumlah rambut putih yang Anda dapatkan dari hal-hal seperti ini :)

George Smith
sumber