Kemungkinan alasan waktu tunggu saat mencoba mengakses instans EC2

102

Saya tidak dapat melakukan SSH ke instans saya - Waktu operasi habis. Apa yang mungkin menjadi alasannya, dan apa yang dapat saya lakukan untuk mengatasinya? Mem-boot ulang biasanya membutuhkan waktu lama untuk diterapkan, dan mungkin memperburuk keadaan

PEMBARUAN: Ini bukan tentang izin - saya dapat masuk secara normal dengan baik. Saya menduga itu mungkin karena masalah memori

ming yeow
sumber
3
Anda harus mencoba serverfault.com karena ini sebenarnya bukan pertanyaan pemrograman.
rwilliams
Firewall? SSH mendengarkan di port itu?
OMG Ponies
1
Apakah masalah tetap ada jika Anda meluncurkan instance lain? (Mungkin juga membantu untuk mengetahui lebih banyak tentang pengaturan Anda.) Saya memperbarui jawaban saya.
Jonik
ping DNS dulu. Jika gagal, konfigurasikan aturan masuk / keluar Anda di wizard peluncuran. konfigurasikan SEMUA lalu lintas dan SEMUA protokol dan cukup simpan dengan opsi default. Ping lagi dengan sistem lokal Anda dan kemudian akan berfungsi.
Maiden

Jawaban:

67

Apakah Anda menetapkan grup keamanan yang sesuai untuk instance? Yaitu yang memungkinkan akses dari jaringan Anda ke port 22 pada instance. (Secara default semua lalu lintas tidak diizinkan.)

Pembaruan: Ok, bukan masalah grup keamanan. Tetapi apakah masalah tetap ada jika Anda meluncurkan instance lain dari AMI yang sama dan mencoba mengaksesnya? Mungkin instans EC2 khusus ini entah bagaimana gagal secara acak - hanya masalah waktu hal seperti itu terjadi. (Bacaan yang disarankan: Architecting for the Cloud: Best Practices (PDF), makalah oleh Jinesh Varia yang merupakan penginjil layanan web di Amazon. Lihat terutama bagian berjudul "Rancang untuk gagal dan tidak ada yang akan gagal".)

Jonik
sumber
Berikut hal yang sama di FAQ EC2: developer.amazonwebservices.com/connect/… (Selain itu ec2-authorize, Anda dapat menggunakan ekstensi Firefox Elasticfox untuk mengkonfigurasi grup dengan mudah.)
Jonik
1
Ya ampun ... membuka port SSH di grup itu sangat mendasar, saya tidak percaya itu tidak ada di sini: alestic.com/2009/08/ec2-connectivity . Terima kasih telah menunjukkannya.
mtyson
oh, saya benar-benar lupa tentang grup keamanan! Terima kasih!
Antonio Beno
91

Saya memiliki masalah yang sama, dan solusinya akhirnya menambahkan IP mesin lokal saya ke daftar aturan masuk di grup keamanan aktif. Pada dialog masuk di bawah ini, masukkan 22 di kisaran porta, IP lokal / 32 Anda di bidang sumber, dan biarkan 'aturan tcp khusus' di tarik-turun.

masukkan deskripsi gambar di sini

ted.strauss
sumber
6
Setelah Anda menekan tombol 'tambahkan aturan', Anda juga perlu menekan 'terapkan perubahan aturan' agar aturan tersebut berlaku. Jangan lupakan ini. Itu mengacaukan saya beberapa kali.
ted.strauss
Terima kasih banyak untuk ini!
Hego555
Jawaban yang tepat! Saya tidak lagi takut diretas: D
softvar
2
ini berhasil untuk saya, terima kasih !! Untuk beberapa alasan .. alamat ip saya berubah, dan tiba-tiba saya tidak bisa ssh ke contoh ec2 saya. Saya baru saja menambahkan aturan, dan alih-alih memasukkan alamat ip "khusus", saya hanya memilih 'IP saya' dan wala ... Saya bisa masuk ssh!
rikkitikkitumbo
Jawaban yang bagus! Saya menemukan pemecahan masalah dari AWS ini sangat berguna juga, dan ini berisi poin yang disarankan di sini di atas.
J0ANMM
28

Hancurkan dan ciptakan lagi

Saya memiliki satu zona ketersediaan di mana saya dapat terhubung dan satu lagi di mana saya tidak bisa. Setelah beberapa jam, saya menjadi sangat frustrasi sehingga saya menghapus semua yang ada di zona ketersediaan itu.

Membangun kembali semuanya, saya harus memastikan untuk membuat SEMUANYA. Ini termasuk:

  • Buat VPC
    • CIDR: 10.0.0.0/24
  • Buat Gateway Internet
  • Lampirkan Gateway Internet ke VPC
  • Buat Tabel Perutean
  • Tambahkan Rute ke Tabel Perutean
    • Destination: 0.0.0.0/0
    • Target: <Internet Gateway from earlier>
  • Buat Subnet
    • CIDR: 10.0.0.0/24
    • Routing Table: <Routing Table from earlier

Saya BANYAK meraba-raba untuk mendapatkan semua ini. Saya telah memesan langkah-langkah dengan cara yang menurut saya mungkin paling efisien, tetapi Anda mungkin harus menyesuaikannya untuk mendapatkan satu item tersedia untuk item berikutnya.

Saran

Saya tidak menyarankan Anda menggunakan termo nuklir seperti yang saya lakukan. Saya menawarkan semua informasi ini sehingga Anda dapat memeriksa asosiasi ini untuk memastikan milik Anda sesuai.

Bruno Bronosky
sumber
6
ini sangat membantu saya! Saya memiliki kasus di mana tabel perutean saya tidak mengarah ke gateway internet dan itulah satu-satunya masalah.
EdgeCaseBerg
Sejujurnya, saya mendokumentasikan hal-hal ini di SO dan di github / gists karena saya tahu saya akan menendang diri saya sendiri ketika saya perlu melakukannya lagi dalam 2 bulan. Harapan saya adalah membantu orang lain juga. Tapi akhirnya, saya hanya bencana yang egois. Terima kasih telah meluangkan waktu untuk berkomentar, @EdgeCaseBerg.
Bruno Bronosky
2
Terima kasih TON @BrunoBronosky. Tepatnya, jika "gateway Internet" itu memang harus, lalu mengapa dokumentasi AWS default tidak menyebutkannya? :(
Anand
1
@BrunoBronosky terima kasih! Inilah tepatnya yang mencegah saya untuk terhubung ke instance. Saya akan menyimpan langkah-langkah ini untuk masa depan saya.
saiyancoder
21

Jawaban ini untuk orang-orang konyol (seperti saya). DNS publik EC2 Anda mungkin (akan) berubah ketika dimulai ulang. Jika Anda tidak menyadarinya dan mencoba melakukan SSH ke DNS publik lama Anda, koneksi akan terhenti dan waktu habis. Ini dapat membuat Anda berasumsi ada yang salah dengan EC2 atau grup keamanan Anda atau ... Tidak, cukup SSH ke DNS baru. Dan perbarui ~/.ssh/configfile Anda jika perlu!

dslosky.dll
sumber
Satu jam memecahkan masalah waktu tunggu saya dan inilah solusinya. Terima kasih :)
Eric D. Brown
2
Terima kasih banyak @dslosky Anda menyelamatkan hidup saya. :)
A_01
13

Untuk menghubungkan gunakan ssh seperti ini:

ssh -i keyname.pem [email protected]

Di mana keyname.pemnama kunci pribadi Anda, usernameadalah nama pengguna yang benar untuk distribusi os Anda, dan xxx.xx.xxx.xxmerupakan alamat ip publik.

Jika waktu habis atau gagal, periksa yang berikut ini:

Grup Keamanan

Pastikan untuk memiliki aturan masuk untuk tcp port 22 dan semua ip atau ip Anda. Anda dapat menemukan grup keamanan melalui menu ec2, di opsi contoh.

Tabel Perutean

Untuk subnet baru di vpc, Anda perlu mengubah tabel routing yang menunjukkan 0.0.0.0/0 ke target gateway internet . Saat Anda membuat subnet di vpc Anda, secara default akan menetapkan tabel perutean default, yang mungkin tidak menerima lalu lintas masuk dari internet. Anda dapat mengedit opsi tabel perutean di menu vpc dan kemudian subnet.

IP elastis

Untuk instance di vpc, Anda perlu menetapkan alamat ip elastis publik , dan mengaitkannya dengan instance tersebut. Alamat ip pribadi tidak dapat diakses dari luar. Anda bisa mendapatkan ip elastis di menu ec2 (bukan menu contoh).

Nama pengguna

Pastikan Anda menggunakan nama pengguna yang benar . Ini harus salah satu dari ec2-useratau rootatau ubuntu. Coba semuanya jika perlu.

Kunci Pribadi

Pastikan Anda menggunakan kunci pribadi yang benar (yang Anda unduh atau pilih saat meluncurkan instans). Tampak jelas, tetapi salin tempel membuat saya dua kali.

AJcodez
sumber
1
Terima kasih untuk ini, saya selalu lupa menambahkan 0.0.0.0/0 ke target gateway internet ketika saya membuat VPC baru
Chathushka
7

Sudahkah Anda melihat keluaran konsol dari instance? Anda dapat melakukan ini melalui konsol AWS (Instans -> Klik kanan pada instans -> Dapatkan Log Sistem). Saya pernah mengalami kejadian ketika layanan jaringan pada instans EC2 gagal untuk memulai dengan benar, mengakibatkan koneksi SSH habis waktu; memulai ulang instance biasanya memperbaiki banyak hal.

gareth_bowles
sumber
3

masukkan deskripsi gambar di sini

SETELAH 2 JAM SAYA MENEMUKAN INI

Perhatikan Itu ssh ip 120.138.105.251/32

  • BUKAN aws instance IP ADDRESS

  • Ini bukan ip lokal Anda 127.0.0.1

  • Ini bukan ip lokal Anda localhost

TAPI TAPI TAPI

Its Anda alamat ip publik dari Anda Komputer pribadi dari mana Anda coba akses aws contoh

  1. Buka https://www.whatismyip.com/ alamat ip apa pun yang dimasukkan ke ssh

JIKA ANDA INGIN SEPENUHNYA MEMBUKA SSH KE SEMUA ALAMAT IP masukkan deskripsi gambar di sini

INI ADALAH CARA PENAMPILAN MASUK YANG DAPAT DIAKSES - DASAR DIREKOMENDASIKAN masukkan deskripsi gambar di sini

INILAH YANG SAYA GUNAKAN DALAM PRODUKSI masukkan deskripsi gambar di sini

vijay
sumber
2

Berikut ini adalah kemungkinan masalah:

  • Yang paling mungkin adalah bahwa Grup Keamanan tidak dikonfigurasi dengan benar untuk memberikan akses SSH pada port 22 ke ip Anda Perubahan dalam pengaturan keamanan tidak memerlukan restart server agar efektif tetapi perlu menunggu beberapa menit agar itu menjadi berlaku.

  • Konfigurasi firewall lokal tidak mengizinkan akses SSH ke server. (Anda dapat mencoba koneksi internet yang berbeda, ponsel / dongle Anda untuk mencobanya)

  • Server tidak dimulai dengan benar (maka pemeriksaan akses akan gagal bahkan di konsol amazon), dalam hal ini Anda harus menghentikan dan memulai server.

pradosh nair
sumber
Dalam kasus saya, itu adalah masalah firewall di jaringan yang saya kerjakan. Menggunakan VPN untuk mengakalinya.
MDave
1

Lihat halaman bantuan ini di dokumen AWS:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectionTimeout Anda mungkin akan menemukan solusi Anda di sana. bagi saya bagian ini melakukan perbaikan:

[EC2-VPC] Periksa tabel rute untuk subnet. Anda memerlukan rute yang mengirimkan semua lalu lintas yang ditujukan di luar VPC ke gateway Internet untuk VPC.

  • Buka konsol Amazon VPC di https://console.aws.amazon.com/vpc/ .

  • Di panel navigasi, pilih Gateway Internet. Verifikasikan bahwa ada gateway Internet yang terpasang ke VPC Anda. Jika tidak, pilih Buat Gateway Internet dan ikuti petunjuk untuk membuat gateway Internet, pilih gateway Internet, lalu pilih Lampirkan ke VPC dan ikuti petunjuk untuk memasangnya ke VPC Anda.

  • Di panel navigasi, pilih Subnet, lalu pilih subnet Anda.

  • Pada tab Tabel Rute, verifikasi bahwa ada rute dengan 0.0.0.0/0 sebagai tujuan dan gateway Internet untuk VPC Anda sebagai target. Jika tidak, pilih ID dari tabel rute (rtb-xxxxxxxx) untuk menavigasi ke tab Rute untuk tabel rute, pilih Edit, Tambahkan rute lain, masukkan 0.0.0.0/0 di Tujuan, pilih gateway Internet Anda dari Target, lalu pilih Simpan.

Tetapi saya sarankan Anda memeriksa semua opsi yang dicakup tautan di atas, Anda mungkin menemukan di sana satu atau lebih masalah yang Anda dapatkan.

Meltzer
sumber
1

Masalah saya - Saya membuka port 22 untuk "IP Saya" dan mengubah koneksi internet dan perubahan alamat IP yang disebabkan. Jadi harus mengubahnya kembali.

smDev
sumber
1

Membangun @ted.straussjawaban, Anda dapat memilih SSHdan MyIPdari menu drop-down daripada menavigasi ke situs pihak ketiga.

Adam J. Gramling
sumber
1

Cukup reboot Instans Ec2 setelah Anda menerapkan Aturan

Shaz
sumber
1

Izinkan ssh dan port 22 dari ufw, lalu aktifkan dan periksa dengan perintah status

sudo ufw allow ssh
sudo ufw allow 22
sudo ufw enable
sudo ufw status
Jagannath Swarnkar
sumber
0

Satu kemungkinan lagi. Grup keamanan AWS diatur untuk bekerja hanya dengan alamat ip masuk tertentu. Jika grup keamanan Anda diatur dengan cara ini, Anda (atau pemegang akun) perlu menambahkan alamat ip Anda ke grup keamanan. Untuk ini, buka dasbor AWS Anda, pilih grup keamanan, pilih grup keamanan dan klik pada tab masuk. Kemudian tambahkan ip Anda yang sesuai.

LA Ferguson
sumber
0

Saya memiliki masalah yang sama, dan solusinya mengizinkan akses dari mana saja ke daftar aturan masuk dalam grup keamanan aktif. Dalam dialog masuk, masukkan 22 di kisaran port, di mana saja di bidang sumber, dan pilih 'ssh' di tarik-turun.

NB: Ini mungkin bukan solusi yang disarankan karena itu berarti instance ini dapat di-ssh'ed dari mesin mana pun, tetapi saya tidak dapat membuatnya berfungsi dengan IP lokal saya.

Yahya
sumber
0

Saya mengalami masalah serupa, ketika saya menggunakan Wifi publik, yang tidak memiliki kata sandi. Mengalihkan koneksi internet ke koneksi aman memang menyelesaikan masalah.

Bharath Ram
sumber
0

Jika akses SSH tidak berfungsi untuk instans EC2 Anda, Anda perlu memeriksa:

  • Grup Keamanan untuk instance Anda mengizinkan akses SSH Masuk (periksa: lihat aturan ).

Jika Anda menggunakan instance VPC (Anda memiliki ID VPC dan ID Subnet yang dilampirkan ke instance Anda), periksa:

  1. Di Dasbor VPC, temukan ID Subnet bekas yang dilampirkan ke VPC Anda.
  2. Periksa tabel Route terlampir yang seharusnya memiliki 0.0.0.0/0Tujuan dan Gateway Internet Anda sebagai Target.

Di Linux, Anda juga dapat memeriksa info rute di Log Sistem di Jaringan dari instance, misalnya:

++++++++++++++++++++++++++++++++++++++Net device info+++++++++++++++++++++++++++++++++++++++
+--------+------+------------------------------+---------------+-------+-------------------+
| Device |  Up  |           Address            |      Mask     | Scope |     Hw-Address    |
+--------+------+------------------------------+---------------+-------+-------------------+
|   lo   | True |          127.0.0.1           |   255.0.0.0   |   .   |         .         |
|  eth0  | True |         172.30.2.226         | 255.255.255.0 |   .   | 0a:70:f3:2f:82:23 |
+--------+------+------------------------------+---------------+-------+-------------------+
++++++++++++++++++++++++++++Route IPv4 info+++++++++++++++++++++++++++++
+-------+-------------+------------+---------------+-----------+-------+
| Route | Destination |  Gateway   |    Genmask    | Interface | Flags |
+-------+-------------+------------+---------------+-----------+-------+
|   0   |   0.0.0.0   | 172.30.2.1 |    0.0.0.0    |    eth0   |   UG  |
|   1   |   10.0.3.0  |  0.0.0.0   | 255.255.255.0 |   lxcbr0  |   U   |
|   2   |  172.30.2.0 |  0.0.0.0   | 255.255.255.0 |    eth0   |   U   |
+-------+-------------+------------+---------------+-----------+-------+

di mana UGbendera menunjukkan gateway internet Anda.

Untuk detail selengkapnya, periksa: Pemecahan Masalah Menghubungkan ke Instans Anda di Amazon docs.

kenorb
sumber
0

Untuk mengaktifkan akses ssh dari Internet untuk instance di subnet VPC, lakukan hal berikut:

  • Lampirkan gateway Internet ke VPC Anda.
  • Pastikan tabel rute subnet Anda mengarah ke gateway Internet.
  • Pastikan bahwa instance di subnet Anda memiliki alamat IP yang unik secara global (alamat IPv4 publik, alamat Elastic IP, atau alamat IPv6).
  • Pastikan kontrol akses jaringan Anda (di Tingkat VPC) dan aturan grup keamanan (di tingkat ec2) memungkinkan lalu lintas yang relevan mengalir ke dan dari instance Anda. Pastikan alamat IP Publik jaringan Anda diaktifkan untuk keduanya. Secara default, Network AcL mengizinkan semua lalu lintas masuk dan keluar kecuali secara eksplisit dikonfigurasi sebaliknya
Anigbo yang tidak bersalah
sumber
0

Bagi saya, itu adalah server apache yang dihosting pada instans t2.micro linux EC2, bukan instans EC2 itu sendiri.

Saya memperbaikinya dengan melakukan:

sudo su

service httpd restart

Gus
sumber
0

Saya memiliki masalah yang sama dan saya menyelesaikannya dengan menambahkan aturan ke grup keamanan

SSH masuk 0.0.0.0/0

Atau Anda hanya dapat menambahkan alamat IP Anda

Majali
sumber
0

Bagi saya, saya telah menghapus semuanya dari volume boot. Dan tidak dapat terhubung ke instance lagi.

t_sologub
sumber
0

Saya sedang mengerjakan instance dan itu baik-baik saja, keesokan harinya ketika saya mencoba SSH ke dalam instance saya, muncul tulisan - Connection timeout.

Saya mencoba melalui posting ini tetapi tidak ada yang berhasil. Jadi saya lakukan -

Pada kolom Edit inbound rulesdari sumber pilih MY IPdan secara otomatis akan mengisi alamat IP Publik Anda dalam format CIDR ( XXX.XXX.XXX.XX/32).

Saya mencoba dengan jawaban @ ted.strauss dengan memberikan IP lokal tetapi tidak membantu dalam kasus saya. Jadi saya memilih IP SAYA dan berhasil.

Semoga ini bisa membantu seseorang!

rbashish
sumber
0

ping DNS dulu. Jika gagal, konfigurasikan aturan masuk / keluar Anda di wizard peluncuran. konfigurasikan SEMUA lalu lintas dan SEMUA protokol dan cukup simpan dengan opsi default. Ping lagi dengan sistem lokal Anda dan kemudian akan berfungsi

Gadis
sumber
0

Jika Anda baru saja membuat instance baru dan tidak dapat terhubung dengannya, saya dapat menyelesaikan masalah dengan menghentikannya dan membuat yang baru. Tentu saja ini hanya akan berfungsi jika itu adalah contoh baru dan Anda belum mengerjakannya lagi.

José Del Valle
sumber