Saya diberi akses AWS Console ke akun dengan 2 kejadian berjalan yang tidak dapat saya tutup (dalam produksi). Namun saya ingin mendapatkan akses SSH ke instance ini, apakah mungkin membuat Keypair baru dan menerapkannya pada instance sehingga saya dapat memasukkan SSH? Memperoleh file pem yang ada untuk keypair contoh itu dibuat di bawah saat ini bukan pilihan.
Jika ini tidak mungkin, adakah cara lain yang bisa saya ambil untuk contoh ini?
amazon-web-services
authentication
ssh
amazon-ec2
permissions
Chris Wagner
sumber
sumber
ssh-add
harus melakukan apa yang Anda butuhkan.Jawaban:
Anda tidak dapat menerapkan keypair ke instance yang berjalan. Anda hanya dapat menggunakan keypair baru untuk meluncurkan instance baru.
Untuk pemulihan, jika ini adalah boot AMI EBS, Anda dapat menghentikannya, membuat snapshot volume. Buat volume baru berdasarkan itu. Dan dapat menggunakannya kembali untuk memulai contoh lama, membuat gambar baru, atau memulihkan data.
Padahal data di penyimpanan sesaat akan hilang.
Karena popularitas pertanyaan dan jawaban ini, saya ingin menangkap informasi di tautan yang diposting Rodney pada komentarnya.
Penghargaan diberikan kepada Eric Hammond untuk informasi ini .
Memperbaiki File pada Volume EBS Root dari Mesin Virtual EC2
Anda dapat memeriksa dan mengedit file pada volume EBS root pada instance EC2 bahkan jika Anda berada dalam situasi yang Anda anggap seperti bencana:
Pada komputer fisik yang duduk di meja Anda, Anda bisa mem-boot sistem dengan CD atau stik USB, pasang hard drive, periksa dan perbaiki file-file tersebut, kemudian reboot komputer untuk kembali berbisnis.
Contoh EC2 jarak jauh, tampaknya jauh dan tidak dapat diakses ketika Anda berada dalam salah satu situasi ini. Untungnya, AWS memberi kita kekuatan dan fleksibilitas untuk dapat memulihkan sistem seperti ini, asalkan kita menjalankan instance boot EBS dan bukan instance-store.
Pendekatan pada EC2 agak mirip dengan solusi fisik, tetapi kita akan memindahkan dan memasang "hard drive" yang salah (volume root EBS) ke contoh yang berbeda, memperbaikinya, lalu memindahkannya kembali.
Dalam beberapa situasi, mungkin lebih mudah untuk memulai contoh EC2 baru dan membuang yang buruk, tetapi jika Anda benar-benar ingin memperbaiki file Anda, berikut adalah pendekatan yang telah bekerja untuk banyak orang:
Mempersiapkan
Identifikasi instance asli (A) dan volume yang berisi volume EBS root yang rusak dengan file yang ingin Anda lihat dan edit.
Identifikasi instance EC2 kedua (B) yang akan Anda gunakan untuk memperbaiki file pada volume EBS asli. Mesin virtual ini harus dijalankan di zona ketersediaan yang sama dengan mesin contoh A sehingga dapat memiliki volume EBS yang menyertainya. Jika Anda belum memiliki instance yang berjalan, mulailah yang sementara.
Hentikan instance yang rusak A (tunggu sampai berhenti total), lepaskan volume EBS root dari instance (tunggu sampai terlepas), lalu pasang volume ke instance B pada perangkat yang tidak digunakan.
ssh ke instance B dan pasang volume sehingga Anda dapat mengakses sistem file-nya.
Memperbaikinya
Pada titik ini seluruh sistem file root Anda dari instance A tersedia untuk dilihat dan diedit di / vol-a pada instance B. Misalnya, Anda mungkin ingin:
Catatan: Uids pada dua instance mungkin tidak identik, jadi berhati-hatilah jika Anda membuat, mengedit, atau menyalin file milik pengguna non-root. Sebagai contoh, pengguna mysql Anda pada contoh A mungkin memiliki UID yang sama dengan pengguna postfix Anda pada contoh B yang dapat menyebabkan masalah jika Anda memberi tahu file dengan satu nama dan kemudian memindahkan volume kembali ke A.
Bungkus
Setelah selesai dan Anda senang dengan file-file di bawah / vol-a, unmount sistem file (masih pada instance-B):
Sekarang, kembali ke sistem Anda dengan ec2-api-tools, lanjutkan memindahkan volume EBS kembali ke rumah itu pada instance A asli dan mulai instance lagi:
Mudah-mudahan, Anda memperbaiki masalah, misalnya A muncul dengan baik, dan Anda dapat mencapai apa yang awalnya Anda lakukan. Jika tidak, Anda mungkin perlu terus mengulangi langkah-langkah ini sampai Anda berhasil.
Catatan: Jika Anda memiliki alamat IP elastis yang ditetapkan untuk instance A ketika Anda menghentikannya, Anda harus menghubungkannya kembali setelah memulai kembali.
Ingat! Jika instance B Anda untuk sementara waktu dimulai hanya untuk proses ini, jangan lupa untuk menghentikannya sekarang.
sumber
Meskipun Anda tidak dapat menambahkan pasangan kunci ke instance EC2 yang sedang berjalan secara langsung, Anda dapat membuat pengguna linux dan membuat pasangan kunci baru untuknya, lalu menggunakannya seperti halnya dengan pasangan kunci pengguna asli.
Dalam kasus Anda, Anda dapat meminta pemilik instance (yang membuatnya) untuk melakukan hal berikut. Dengan demikian, pemilik instance tidak harus membagikan kuncinya sendiri kepada Anda, tetapi Anda masih dapat melakukan ssh ke instance ini. Langkah-langkah ini awalnya diposting oleh Utkarsh Sengar (alias. @ Zengr ) di http://utkarshsengar.com/2011/01/manage-multiple-accounts-on-1-amazon-ec2-instance/ . Saya hanya membuat beberapa perubahan kecil.
Langkah 1: login secara default "ubuntu" pengguna :
Langkah 2: buat pengguna baru, kami akan memanggil pengguna baru kami "john" :
Setel kata sandi untuk "john" oleh:
Tambahkan "john" ke daftar sudoer dengan:
.. dan tambahkan berikut ini di akhir file:
Baik! Kami telah membuat pengguna baru kami, sekarang Anda perlu membuat file kunci yang akan diperlukan untuk login, seperti kami memiliki my_orin_key.pem di Langkah 1.
Sekarang, keluar dan kembali ke ubuntu, dari root.
Langkah 3: membuat kunci publik dan pribadi :
Masukkan kata sandi yang Anda buat untuk "john" di Langkah 2. Kemudian buat pasangan kunci. Ingat bahwa frasa sandi untuk pasangan kunci harus minimal 4 karakter.
Pada langkah di atas, john adalah pengguna yang kami buat dan ubuntu adalah grup pengguna default.
Langkah 4: sekarang Anda hanya perlu mengunduh kunci yang disebut "john" . Saya menggunakan scp untuk mengunduh / mengunggah file dari EC2, berikut adalah bagaimana Anda dapat melakukannya.
Anda masih perlu menyalin file menggunakan pengguna ubuntu , karena Anda hanya memiliki kunci untuk nama pengguna itu. Jadi, Anda perlu memindahkan kunci ke folder ubuntu dan chmod ke 777.
Sekarang datang ke terminal mesin lokal, di mana Anda memiliki file my_orig_key.pem dan lakukan ini:
Perintah di atas akan menyalin kunci “john” ke direktori yang berfungsi sekarang pada mesin lokal Anda. Setelah Anda menyalin kunci ke mesin lokal Anda, Anda harus menghapus "/ home / ubuntu / john", karena itu adalah kunci pribadi.
Sekarang, satu mesin lokal Anda chmod john ke 600.
Langkah 5: waktu untuk menguji kunci Anda :
Jadi, dengan cara ini, Anda dapat mengatur beberapa pengguna untuk menggunakan satu contoh EC2 !!
sumber
Di mesin lokal Anda, jalankan perintah:
Setelah perintah itu berjalan, file yang diakhiri dengan * .pub akan dibuat. Salin konten file itu.
Pada mesin Amazon, edit ~ / .ssh / otor_keys dan rekatkan isi file * .pub (dan hapus semua konten yang ada terlebih dahulu).
Anda kemudian dapat SSH menggunakan file lain yang dihasilkan dari perintah ssh-keygen (kunci pribadi).
sumber
ssh-rsa AAAAB3NzaC1yc2EA...DsGt66 my-key-pair
Ini terjadi pada saya sebelumnya (tidak memiliki akses ke instance EC2 yang dibuat orang lain tetapi memiliki akses ke konsol web AWS) dan saya menulis blog jawabannya: http://readystate4.com/2013/04/09/aws-gaining- ssh-access-to-an-ec2-instance-you-lost-access-to /
Pada dasarnya, Anda dapat melepaskan drive EBS, melampirkannya ke EC2 yang Anda miliki aksesnya. Tambahkan kunci pub SSH Anda ke
~ec2-user/.ssh/authorized_keys
pada drive terlampir ini. Kemudian kembalikan ke instance EC2 yang lama. langkah-demi-langkah dalam tautan menggunakan Amazon AMI.Tidak perlu membuat snapshot atau membuat instance kloning baru.
sumber
Dalam kasus saya, saya menggunakan dokumentasi ini untuk mengaitkan pasangan kunci dengan mesin Beanstalk elastis saya
Mengkonfigurasi Instance Server Amazon EC2 dengan Elastic Beanstalk
sumber
Anda bisa menambahkan kunci baru ke instance dengan perintah berikut:
Anda dapat mengkonfigurasi domain_alias di konfigurasi ~ / .ssh
sumber
Saya tidak menemukan cara mudah untuk menambahkan pasangan kunci baru melalui konsol, tetapi Anda dapat melakukannya secara manual.
Cukup ssh ke kotak EC2 Anda dengan pasangan kunci yang ada. Kemudian edit tombol ~ / .ssh / authorized_key dan tambahkan kunci baru pada baris baru. Keluar dan ssh melalui mesin baru. Keberhasilan!
sumber
stackoverflow.com/questions/7881469/change-key-pair-for-ec2-instance
sumber
Untuk lingkungan Elasticbeanstalk, Anda bisa menerapkan pasangan kunci-nilai pada instance berjalan seperti ini:
sumber
Anda benar-benar dapat menambahkan pasangan kunci melalui halaman konfigurasi beanstalk elastis. kemudian restart contoh Anda untuk Anda dan semuanya berfungsi.
sumber