Bagaimana cara mengatur akses SSH untuk instans Amazon EC2?


87

Saya memerlukan akses SSH ke instans Amazon EC2 yang menjalankan Ubuntu 10.4. Yang saya miliki hanyalah nama pengguna dan kata sandi Amazon. Ada ide?


2
Jangan lupa untuk menjalankan chmod 400 my_private_key.pem.txt setelah Anda mendownloadnya.
Peter Kaminski

Jawaban:


159

Pada dasarnya, Anda memerlukan file kunci pribadi untuk login ke EC2 Anda melalui SSH. Ikuti langkah-langkah berikut untuk membuatnya:

  • Buka https://console.aws.amazon.com/ec2/home & masuk ke akun Amazon Anda yang sudah ada.
  • Klik "Key Pairs" di LHS atau https://console.aws.amazon.com/ec2/home?region=us-east-1#s=KeyPairs .
    • Anda akan melihat daftar KEY yang dibuat oleh Anda (atau selama proses pembuatan EC2).
    • Klik "Buat Pasangan Kunci" jika Anda tidak melihat satu pun atau Anda kehilangan kunci pribadi Anda.
    • Masukkan nama unik dan tekan enter.
    • Panel unduhan akan muncul untuk Anda menyimpan kunci pribadi, menyimpannya.
    • Simpan di suatu tempat dengan izin file "0600"
  • Klik "Instances" di LHS atau https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances
    • Anda harus melihat daftar ec2-instance, jika Anda tidak melihatnya, silakan buat satu.
    • Klik pada mesin EC2 dan catat alamat DNS Publik.
  • Buka Terminal Anda (di Linux) dan ketik perintah berikut
    • ssh -i /path/to/private-key root@<ec2-public-dns-address>- nama pengguna root telah dihindari di rilis terbaru, berdasarkan pilihan distribusi Anda ec2-useratau ubuntusebagai nama pengguna Anda.
    • tekan Enter
    • Itu dia.

6
Anda kemungkinan besar tidak dapat masuk sebagai root secara langsung melalui ssh. Anda harus menggunakan akun non-root seperti ec2-user jadi 'ssh -i / path / to / private-key ec2-user @ hostname
timbo

4
Setelah saya mencoba menghubungkannya, saya diberitahu bahwa saya harus menggunakan ubuntulogin daripada root. Ternyata saya punya contoh ubuntu server 12.04.
Vasiliy Stavenko

3
Saya berhasil membuat akun SSH, selanjutnya bagaimana cara mengupload file menggunakan SCP dengan akun yang dibuat ??? Ketika saya mencoba mengunggah menggunakan SCP, dikatakan "Izin ditolak (publickey)."
Ashok KS

5
masih mendapatkan pijatan ini "Izin ditolak (publickey)." Mengapa demikian?
Kasun Kariyawasam

2
Kalian akan mendapatkan "Izin ditolak (publik)." mungkin menggunakan Elastic Beanstalk. Jika demikian, Anda perlu masuk ke EB env Config, Security, dan memilih pasangan kunci baru. Instans EC2 baru akan dibuat yang menerima kunci tersebut. Dan nama penggunanya adalah ec2-useratau mungkin ubuntu, tetapi tidak root.
Jorge Orpinel

25
ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>

gunakan saja, ubuntubukan root. Masalah Anda akan terpecahkan. Bersulang!


12

LANGKAH 1) Unduh kunci pribadi yang ditugaskan ke mesin ec2 Anda (yang hanya satu kali mengunduh saat dibuat. Jadi disarankan untuk berkomitmen di suatu tempat)

LANGKAH 2) dan jalankan perintah berikut,

chmod 400 MyKeyPair.pem
ssh -i MyKeyPair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

Dokumen Resmi : Menghubungkan ke Instans Linux / Unix Anda Menggunakan SSH


7

Catatan, pengguna saat ini untuk 13.04 adalah "ubuntu" ssh -i ./mykey.pem ubuntu@ec2-xxx-xxx-xxx-1.compute-1.amazonaws.com


4

Anda perlu membuat pasangan kunci terlebih dahulu - lakukan itu menggunakan konsol EC2 Anda. Kemudian gunakan kunci pribadi Anda ke SSH ke server (nama penggunanya ec2-user) menggunakan klien SSH pilihan Anda.

Setelah masuk, Anda dapat mengeluarkan a sudo su -untuk mendapatkan root jika Anda mau (catatan: Anda tidak dapat masuk sebagai root secara langsung).


4

Jika Anda menggunakan MacOS, Anda harus membuat / mengedit file konfigurasi SSH (~ / .ssh / config) dan meletakkan sesuatu seperti:

Host *.amazonaws.com
    User ubuntu
    Port 22
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    IdentityFile ~/PATH/YOUR_DOWNLOADED_KEY.pem

Kemudian untuk menghubungkan ke salah satu instans EC2:

ssh MYNAME.amazonaws.com

Tidak ada lagi!


bagaimana jika saya memiliki kunci multi-sobat untuk Wilayah yang berbeda seperti us-east-1.pem dan us-west-2.pem
Haseeb

1

Untuk mengatur Ubuntu di AWS, ikuti langkah-langkah berikut:

  1. Masuk ke Amazon Web Services dan pilih EC2 .
  2. Pilih Launch Instance dan ikuti wizard dengan memilih gambar yang tepat (Ubuntu), jenis instance, konfigurasi jaringan dan Subnet VPC, penyimpanan dan izinkan akses SSH di Grup Keamanan . Kemudian Luncurkan .
  3. Untuk pertama kalinya, Anda mungkin perlu menyiapkan pasangan kunci dan menetapkannya ke instance. Anda juga dapat membuat pasangan kunci dalam Pasangan Kunci . Setelah dibuat, unduh file PEM dan simpan di tempat yang aman.
  4. Setelah instance diluncurkan, tunggu hingga instance diinisialisasi dan berjalan .

Untuk mengakses instance melalui SSH, jalankan:

  1. Hubungkan ke kotak Linux dengan menentukan file PEM Anda, misalnya

    ssh -i "file.pem" ubuntu@x.x.x.x
    

    Pastikan file PEM Anda memiliki 600 izin ( chmod 600 file.pem).

Penyelesaian masalah

Jika Anda menjalankan instance VPC, dan grup keamanan Anda sudah benar (dengan aturan yang benar) dan masih tidak berfungsi, di bagian VPC periksa subnet Anda yang harus dilampirkan ke VPC Anda (keduanya digunakan oleh instance Anda) dan siapkan aturan baru di Route Table yang memiliki 0.0.0.0/0sebagai tujuan dan Anda Internet Gateway sebagai Sasaran .

Untuk detail selengkapnya, periksa: Pemecahan Masalah Menghubungkan ke Mesin Virtual Anda

Lihat juga: Kemungkinan alasan waktu tunggu saat mencoba mengakses instans EC2


1

1) Pertama chmodyang .pem fileuntuk membatasi hak izin berkas seperti di bawah ini

chmod 400 my-key-pair.pem

2) Kemudian sshdengan perintah berikut langsung dari .sshfolder

ssh -i my-key-pair.pem ec2-user@ec2-198-99-90-3.compute-1.amazonaws.com

Catatan: - Untuk menavigasi ke dalam .sshfolder. Pertama tekan Ctrl + Huntuk menampilkan semua file tersembunyi dan terakhircd .ssh


0

Tidak masuk sebagai pengguna yang tepat untuk Anda OS Distro bisa menjadi masalah. Untuk AMI baru tertentu, nama pengguna mungkin bukan "ubuntu", tetapi "ec2-user". Untuk Amazon Linux, misalnya, saya yakin penggunanya adalah "ec2-user". Eric Hammond memberikan contoh di sini: http://alestic.com/2014/01/ec2-ssh-username

Saran saya, coba:

ssh -i /path/to/file.pem ec2-user@ec2...

ssh -i /path/to/file.pem ubuntu@ec2...

ssh -i /path/to/file.pem root@ec2...

Jika Anda memiliki AMI yang salah, Anda mungkin hanya ingin me-restart mesin sama sekali sehingga Anda memiliki keseragaman di antara cluster Anda. Jika ini masalah Anda, Anda mungkin menginginkan OS Distro yang sama setidaknya untuk kotak linux Anda.


0

Melakukan apa yang disarankan dalam semua jawaban ini tidaklah cukup. Terhadap setiap contoh Anda melihat grup keamanan. Saat Anda meluncurkan instance baru, Anda akan menyetelnya ke default. Anda perlu mengedit grup keamanan dan menambahkan port ssh itu. Nanti Anda perlu menambahkan port 8080, 8443, 80, 443 juga saat Anda ingin meng-host situs web Anda.


0

Saya Menerima tawaran AWS untuk menggunakan grup keamanan default yang mencakup port 'All Trafic'.

Dan, setelah berkali-kali mencoba untuk terhubung pada contoh ec2 baru saya, saya baru menyadari bahwa saya harus mengedit grup keamanan bekas saya dan secara manual menambahkan ke masuk dan keluar 22 port (ssh)!

Semoga membantu!


0

Pertama ubah izin file pem oleh

chmod 400 path/to/key_pair.pem

Di dalam file ~ / .ssh / config tambahkan baris berikut, di bagian atas file

Host AWS
     Hostname myserver.com
     User myuser
     IdentityFile path/to/.pem/file
     port 22

Nama host mengambil IP atau tautan server, Pengguna mengambil nama pengguna server dan File identitas adalah file yang diunduh dari AWS saat Anda membuat instans. Jalankan saja perintah berikut di terminal

ssh AWS

dan nikmatilah!

Catatan : Untuk menavigasi ke dalam .sshfolder. Pertama tekan Ctrl + Hdi folder home untuk menampilkan semua file tersembunyi dan terakhircd .ssh


0

Pastikan hal ini diperiksa

  1. kunci pribadi harus memiliki 400 izin

  2. Pastikan port 22 terbuka untuk instans AWS yang Anda coba akses.

  3. ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX // XXX.XXX.XXX.XXX = ip publik instance Anda
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.