SSH ke contoh Pohon Kacang Elastis

304

Saya baru saja mendaftar untuk penawaran Pohon Kacang Elastis Amazon yang baru. Apa yang saya tidak tahu adalah bagaimana SSH ke instance Beanstalk. Saya tidak memiliki kunci pribadi karena Beanstalk membuat instance atas nama saya.

Benno Waldmann
sumber
Jadi begitu saya akhirnya login bagaimana saya bisa sampai ke folder di mana saya mendorong repo git saya?
Evolve
Sepertinya jawaban di atas agak tanggal. Amazon memiliki dokumen yang bagus tentang bagaimana melakukannya sekarang. Ikuti saran di atas tentang cara membuat pasangan kunci. Kemudian ikuti ini: <br> <br> docs.aws.amazon.com/elasticbeanstalk/latest/dg/… Semoga beruntung!
Jordan Michael Rushing
4
Nah, jika Anda menggunakan v3 baru ELB CLI yang dapat Anda lakukaneb ssh
Sharoon Thomas

Jawaban:

491

Saya menemukan ini sebagai proses 2 langkah. Ini mengasumsikan bahwa Anda telah mengatur keypair untuk mengakses instance EC2 di wilayah yang relevan.

Konfigurasikan Grup Keamanan

  1. Di konsol AWS, buka tab EC2.
  2. Pilih wilayah yang relevan dan klik pada Grup Keamanan.
  3. Anda harus memiliki elasticbeanstalk-defaultgrup keamanan jika Anda telah meluncurkan mesin Beanstalk yang elastis di wilayah itu.
  4. Edit grup keamanan untuk menambahkan aturan untuk akses SSH. Di bawah ini akan menguncinya hanya untuk memungkinkan masuknya dari alamat IP tertentu.

    SSH | tcp | 22 | 22 | 192.168.1.1/32
    

Konfigurasikan lingkungan Aplikasi Pohon Kacang Elastis Anda

  1. Jika Anda belum membuat pasangan kunci, buat pasangan dengan mengklik Pasangan Kunci di bawah Grup Keamanan di tab EC2.
  2. Di konsol AWS, buka tab Elastic Beanstalk.
  3. Pilih wilayah yang relevan.
  4. Pilih Lingkungan yang relevan
  5. Pilih Konfigurasi di panel kiri.
  6. Pilih Keamanan.
  7. Di bawah "Pasangan kunci EC2:", pilih nama keypair Anda di Existing Key Pairbidang.

Setelah instance diluncurkan kembali, Anda perlu mendapatkan nama host dari tab instance instance AWS Console EC2, atau melalui API. Anda kemudian dapat ssh ke server.

$ ssh -i path/to/keypair.pub [email protected]

Catatan: Untuk menambahkan keypair ke konfigurasi lingkungan, perlindungan terminasi instance harus dimatikan karena Beanstalk akan mencoba untuk menghentikan instance saat ini dan memulai instance baru dengan KeyPair.

Catatan: Jika ada yang tidak berfungsi, periksa tab "Acara" di aplikasi / lingkungan Beanstalk dan cari tahu apa yang salah.

jabley
sumber
41
Jawaban ini memiliki 2x lebih banyak suara daripada jawaban lainnya; secara teknis ketat; dan sangat jelas. Apa yang salah dengan itu? Mengapa itu tidak diterima?
6
Jika Anda mendapatkan kesalahan "Izin ditolak (publickey)" meskipun Anda mengikuti instruksi di atas, hal berikut ini dapat menjelaskan alasannya: Jika pengaturan EB Anda meluncurkan lebih dari satu instance EC2, Anda harus memeriksa yang mana di antara mereka yang mendapatkan pasangan kunci yang terkait dengan Itu. Anda hanya dapat SSH ke instance dengan pasangan kunci. Anda dapat memeriksa properti di menu instance EC2 untuk mengetahuinya.
Per Quested Aronsson
27
Antarmuka mungkin telah berubah di sini. Bagi saya, langkah 4 dan 5 di bagian kedua sedikit berbeda. Saya harus memilih lingkungan yang relevan untuk membuka dasbornya, dan kemudian pilih 'Konfigurasi' di sebelah kiri. Klik ikon roda pengaturan di sebelah 'Mesin Virtual', yang memunculkan halaman pengaturan Server. Saya dapat memilih keypair EC2 dari drop down, yang nyaman. Terima kasih atas jawaban yang bagus!
Dallin
12
Untuk perintah ssh, Anda harus menentukan file kunci pribadi (.pem) dan user_name @ public_dns_name (bukan kunci publik, seperti jawabannya diimplikasikan oleh ekstensi .pub). Untuk Amazon Linux, nama pengguna default adalah ec2-user. Untuk RHEL5, nama pengguna sering di-root tetapi mungkin pengguna ec2. Untuk Ubuntu, nama pengguna adalah ubuntu. Untuk SUSE Linux, nama pengguna adalah root. Jika tidak, tanyakan kepada penyedia AMI Anda. (kredit: docs.aws.amazon.com/AWSEC2/latest/UserGuide/… )
yacc
5
Pengaturan ini telah pindah ke tab "Keamanan" di bawah "Konfigurasi" (jadi pada langkah 6, pilih "Keamanan" alih-alih "
Mesin Virtual
128

Pohon kacang elastis CLI v3 sekarang mendukung SSH langsung dengan perintah eb ssh. Misalnya

eb ssh your-environment-name

Tidak perlu repot membuat grup keamanan untuk menemukan alamat instance EC2.

Ada juga trik keren ini:

eb ssh --force

Itu sementara akan memaksa port 22 terbuka ke 0.0.0.0, dan tetap buka sampai Anda exit. Ini memadukan sedikit manfaat dari jawaban teratas, tanpa kerumitan. Anda dapat memberikan sementara kepada orang lain selain Anda akses untuk debugging dan yang lainnya. Tentu saja Anda masih perlu mengunggah kunci publik mereka ke host agar mereka memiliki akses. Setelah Anda melakukan itu (dan selama Anda berada di dalam eb ssh), orang lain dapat melakukannya

ssh [email protected]
Tal
sumber
2
Saya baru saja menginstal CLI v3 sendiri dan berfungsi dengan baik. Hanya untuk menambahkan, Anda dapat menentukan lingkungan dengan menambahkannya ke perintah, misalnya eb ssh production,. Anda juga dapat mengatur lingkungan tertentu dengan opsi pengaturan:eb ssh production --setup
jmera
Hmmm tidak, ini mengharuskan Anda sudah memiliki kunci pribadi di dir ~/ .ssh Anda. Beberapa orang memilikinya, beberapa tidak. Jika tidak, Anda masih harus membuat dan mengunduh, dan mengaturnya di EB.
Jorge Orpinel
49

Pengalaman saya pada Agustus 2013 dengan klien linux dan instalasi AWS Beanstalk sederhana (instance EC2 tunggal) adalah sebagai berikut (berdasarkan Komunitas Wiki di atas)

Konfigurasikan Grup Keamanan

  1. Di konsol AWS, pilih EC2 untuk pergi ke Dasbor EC2
  2. Temukan grup keamanan yang menjadi tempat instance EC2 Anda dengan mengklik Instance di panel sebelah kiri dan kemudian pilih instance yang ingin Anda sambungkan (dalam kasus saya hanya ada satu - disebut Lingkungan Default). Detailnya ditampilkan di bagian bawah halaman - Anda akan melihat bidang untuk Grup Keamanan - membuat catatan nama - dalam kasus saya "awsweb ...".
  3. Dari panel sebelah kiri pilih Grup Keamanan.
  4. Pilih awsweb...grup keamanan dan detailnya akan ditampilkan di dasar halaman
  5. Pilih tab Masuk dan pilih SSH dari tarik turun "Buat Aturan Baru". Masukkan alamat ip / CIDR mesin lokal Anda (dari mana Anda ingin terhubung), misalnya 192.168.0.12/32 dan klik Tambah Aturan dan Terapkan Perubahan Aturan.

Buat Pasangan Kunci Publik-Pribadi

  1. Dari dasbor EC2 pilih Pasangan Kunci dari panel sebelah kiri
  2. Klik Pair Kunci (di atas) dan masukkan nama seperti myname-key-pair-myregion atau nama kunci apa pun yang Anda suka.
  3. Konfirmasikan dan kemudian terima unduhan kunci pribadi dari peramban, misalnya, simpan di direktori home Anda atau di mana pun Anda suka. Pastikan direktori hanya memiliki izin menulis untuk Anda.

Mengasosiasikan Pasangan Kunci Privat Publik dengan Elastic Beanstalk EC2 Server

  1. Untuk menambahkan pasangan kunci publik-swasta ke instance EC2 Elastic Beanstalk lakukan: Layanan -> Elastic Beanstalk -> Aplikasi Saya -> Lingkungan Default membawa Anda ke lingkungan default (lingkungan tempat Anda mengunggah aplikasi)
  2. Klik Konfigurasi (di panel sebelah kiri) dan kemudian di gigi / gigi yang terkait dengan "Mesin Virtual"
  3. Halaman berjudul "Server" ditampilkan
  4. Pilih par key prebuilt Anda dari EC2 Key Pair dan lakukan Save
  5. Beberapa pesan peringatan ditampilkan, jadi lakukan Simpan lagi.

Terhubung ke AWS EC2 Instance menggunakan SSH

  1. Dalam sesi terminal, ubah ke direktori yang berisi kunci pribadi Anda (file .pem).
  2. Jika Anda sudah melakukan beberapa hal, Anda mungkin harus melakukan sesuatu. Kalau tidak, Anda mungkin mendapatkan kesalahan tentang identitas host yang telah berubah.
  3. Lakukan: ssh -i ./myname-key-pair-my-region.pem [email protected]

Semoga berhasil

mikemay
sumber
3
Untuk perintah ssh Anda harus menentukan file kunci pribadi (.pem) dan user_name @ public_dns_name. Untuk Amazon Linux, nama pengguna default adalah ec2-user. Untuk RHEL5, nama pengguna sering di-root tetapi mungkin pengguna ec2. Untuk Ubuntu, nama pengguna adalah ubuntu. Untuk SUSE Linux, nama pengguna adalah root. Jika tidak, tanyakan kepada penyedia AMI Anda. (kredit: docs.aws.amazon.com/AWSEC2/latest/UserGuide/… )
yacc
Pertanyaan ini memiliki penjelasan terbaik untuk menambahkan bagian pasangan kunci. Tapi saya suka menggunakan eb-cli untuk melakukan bagian SSH karena lebih sederhana. Namun, saya juga memilih yang ini.
Nick
35

Saya telah bermain dengan ini juga.

  1. kebagian tab layanan beanstalk elastis Anda
  2. pada ikhtisar aplikasi Anda tindakan goto -> edit konfigurasi
  3. tambahkan nama kunci seperti yang muncul di tab EC2 Anda (untuk wilayah yang sama) ke kotak keypair yang ada dan tekan terapkan perubahan

Layanan akan diluncurkan kembali sehingga membuat kopi selama 5 menit

Pada tab EC2 Anda untuk wilayah yang sama Anda akan melihat instance berjalan baru Anda. ssh ke nama dns publik sebagai ec2-user menggunakan kunci yang ditambahkan dalam 3 misalnya ssh [email protected]

Ray Vahey
sumber
5
Menambahkan bagian "ec2-user" adalah masalah saya ... Ini harus digabung dengan jawaban di atas;).
Kirill Fuchs
30

Ada opsi 'Connect' yang praktis di menu 'Instance Actions' untuk instance EC2. Ini akan memberi Anda perintah SSH yang tepat untuk mengeksekusi dengan url yang benar untuk instance. Instruksi keseluruhan Jabley benar.

Peter
sumber
24

Jawaban di atas agak tua.

Pertama-tama buat pasangan kunci dan kemudian pasangkan ke lingkungan Elastic Beanstalk.

Langkah-langkah untuk membuat pasangan kunci

  1. Masuk ke AWS
  2. Layanan -> EC2
  3. Di sebelah kiri di bawah NETWORK & SECURITY pilih pasangan kunci
  4. Pilih Buat Pasangan Kunci baru, ketik nama kunci dan klik buat. Kunci akan diunduh secara otomatis ke sistem Anda.

Langkah-langkah untuk memasang pasangan kunci yang dibuat ke lingkungan Elastic Beanstalk

  1. AWS -> Layanan -> Elastic Beanstalk

  2. Pilih lingkungan Anda dan klik konfigurasi di sebelah kiri.

  3. Dalam Ikhtisar konfigurasi, pilih modifikasi dari Keamanan.

  4. Di bawah Izin mesin virtual pilih pasangan kunci yang kami buat.

  5. Klik simpan dan kemudian simpan konfigurasi.

Ini akan memakan waktu untuk merefleksikan instance EC2 Anda.

singh30
sumber
3

Anda harus terhubung ke instance EC2 secara langsung menggunakan alamat ip publiknya. Anda tidak dapat terhubung menggunakan url elasticbeanstalk.

Anda dapat menemukan contoh alamat ip dengan mencarinya di konsol EC2.

Anda juga perlu memastikan port 22 terbuka. Secara default EB CLI menutup port 22 setelah koneksi ssh selesai. Anda dapat memanggil eb ssh -o untuk menjaga port tetap terbuka setelah sesi ssh selesai.

Peringatan: Anda harus tahu bahwa beanstalk elastis dapat menggantikan instance Anda kapan saja. Status tidak dijamin pada salah satu contoh batang elastis Anda. Mungkin lebih baik menggunakan ssh hanya untuk tujuan pengujian dan debugging, karena apa pun yang Anda modifikasi dapat hilang kapan saja.

Siddharth Sharma
sumber
2

Arah untuk menetapkan pasangan kunci untuk instance ElasticBeanstalk ec2 dengan UI saat ini adalah: Peringatan: Ini akan memerlukan pembaruan instance EC2 di Aplikasi ElasticBeanstalk Anda. Catatan: Anda harus membuat pasangan kunci di dasbor EC2 sebelum ini.

1) Di AWS Dashboard, Pilih layanan ElasticBeanstalk 2) Pilih Aplikasi yang ingin Anda gunakan. 3) Pilih 'Konfigurasi' 4) Pilih ikon roda gigi (pengaturan) pada kotak konfigurasi 'Instances'. 5) Ini akan membawa Anda ke halaman berjudul 'Server', di mana Anda dapat memperbarui bidang drop-down 'pasangan kunci EC2' dengan pasangan kunci yang Anda inginkan dan pilih 'Simpan'.

Satu hal yang perlu diperhatikan adalah bahwa ini mungkin tidak berfungsi untuk Aplikasi dengan banyak contoh (tapi saya percaya kemungkinan jika mereka semua berada di wilayah yang sama dengan pasangan kunci).

adamjk
sumber
1

Saya datang ke sini mencari cara untuk menambahkan kunci ke contoh yang dibuat Beanstalk selama penyediaan (kami menggunakan Terraform). Anda dapat melakukan hal berikut di Terraform:

resource "aws_elastic_beanstalk_environment" "your-beanstalk" {
   ... 
   setting {
      namespace = "aws:autoscaling:launchconfiguration"
      name      = "EC2KeyName"
      value     = "${aws_key_pair.your-ssh-key.key_name}"
   }
   ...
}

Anda kemudian dapat menggunakan kunci itu untuk SSH ke dalam kotak.

Maikon
sumber
1

Jika Anda telah mengatur CLI gunakan eb inituntuk lingkungan Anda maka itu harus sesederhana

eb ssh --setup yang akan memungkinkan Anda untuk membuat pasangan kunci baru atau menggunakan yang sudah ada jika ada.

Anda mungkin juga bisa terhubung dengan lingkungan yang ada eb usewalaupun saya belum melakukannya.

Untuk detail tentang menginstal CLI - https://docs.aws.amazon.com/console/elasticbeanstalk/eb-cli-install

Andrew Waites
sumber
1

Di mac Anda dapat menginstal cli menggunakan brew:

brew install awsebcli

Dengan alat baris perintah maka Anda dapat ssh dengan:

eb ssh environment-name

dan juga melakukan operasi lain. Ini mengasumsikan Anda telah menambahkan grup keamanan yang memungkinkan ssh dari ip Anda.

Fabrikasi
sumber
0

Bergantung pada konfigurasi lingkungan Anda, Anda mungkin tidak memiliki alamat IP publik pada instance EC2 yang dibuat untuk lingkungan Anda. Anda dapat memeriksa dengan:

  1. Pergi ke Konsol EC2
  2. Temukan contoh Anda dan periksa tab Deskripsi
  3. Jika tidak ada IP Publik ...
  4. Klik IP Elastis pada Navigasi
  5. Klik Alokasikan alamat baru
  6. Pilih Amazon untuk kolam renang
  7. Klik Alokasikan

Terakhir, pilih EIP baru Anda dan pilih Alamat asosiasi dari menu tindakan. Kaitkan IP itu dengan instance EC2 Anda. Anda harus dapat terhubung menggunakan eb sshsekarang.

Anda dapat mengatur ulang detail koneksi dengan menjalankan eb ssh --setup.

Matthew Carriere
sumber
-5

Saya juga mengalami masalah yang sama beberapa waktu lalu. Saya ingin menggunakan file kunci, tetapi Amazon mengatakan di suatu tempat bahwa Anda tidak dapat menambahkan file kunci ke server EC2 yang ada. Untuk aplikasi Beanstalk pertama, Amazon melakukan pra-konfigurasi aplikasi untuk Anda. Anda perlu membuat aplikasi baru, dan Anda dapat mengkonfigurasi server EC2 yang menjalankan aplikasi Beanstalk untuk menggunakan file pem yang lama (ppk jika menggunakan Putty), atau Anda dapat membuat yang baru. Sekarang Anda harus dapat SSH.

masukkan deskripsi gambar di sini

Kemudian konfigurasikan, lalu hapus aplikasi lama Anda.

ashraj98
sumber
3
Ini salah. Anda BISA menambahkan keyfile ke aplikasi beanstalk yang ada. Itu akan membunuh / membangun kembali dirinya sendiri. Anda tidak perlu menghapus / membuat aplikasi sendiri.
Nate