Amazon EC2 - Tidak Ada SSH Setelah Reboot, Koneksi Ditolak

17

Saya telah mereplikasi ini dua atau tiga kali, jadi saya menduga ada sesuatu yang salah dengan apa yang saya lakukan.

Inilah langkah-langkah saya:

  1. Luncurkan instance baru melalui konsol Manajemen EC2 menggunakan: Ubuntu Server 13.10 - ami-ace67f9c (64-bit)
  2. Luncurkan dengan default (menggunakan pasangan kunci saya yang ada)
  3. Mesin virtual dimulai. Saya bisa SSH menggunakan Putty atau terminal Mac. Keberhasilan!
  4. Saya reboot instance
  5. 10 menit kemudian, ketika instance harus kembali dan berjalan, koneksi terminal saya menunjukkan:

    stead:~ stead$ ssh -v -i Dropbox/SteadCloud3.pem [email protected]
    OpenSSH_5.6p1, Op`enSSL 0.9.8y 5 Feb 2013
    debug1: Reading configuration data /etc/ssh_config
    debug1: Applying options for *
    debug1: Connecting to 54.201.200.208 [54.201.200.208] port 22.
    debug1: connect to address 54.201.200.208 port 22: Connection refused
    ssh: connect to host 54.201.200.208 port 22: Connection refused
    stead:~ stead$
    

Baik, saya mengerti bahwa alamat IP publik dapat berubah, jadi memeriksa konsol manajemen EC2, saya memverifikasi bahwa itu sama. Aneh. Hanya untuk bersenang-senang, saya mencoba menghubungkan dengan nama host DNS publik: ec2-54-201-200-208.us-west-2.compute.amazonaws.com. Tidak ada dadu, hasil yang sama.

Bahkan menggunakan Connect via Java SSH client yang dibangun di konsol EC2, saya mendapatkan Koneksi Ditolak.

Saya memeriksa grup keamanan. Contoh ini dalam peluncuran grup-wizard-4. Melihat konfigurasi inbound untuk grup ini, Port 22 diizinkan masuk dari 0.0.0.0/0, sehingga harus ada di mana saja. Saya tahu bahwa saya memukul instance saya dan ini adalah grup keamanan yang tepat, karena saya tidak bisa melakukan ping instance. Jika saya mengaktifkan ICMP untuk grup keamanan ini, tiba-tiba ping saya melewatinya.

Saya telah menemukan beberapa posting lain di internet dengan pesan kesalahan yang serupa, tetapi sebagian besar tampaknya mudah diselesaikan dengan mengubah pengaturan firewall. Saya sudah mencoba beberapa di antaranya, tanpa hasil.

Saya menduga ada langkah sederhana EC2 yang saya lewatkan. Terima kasih atas bantuan yang dapat Anda berikan, dan saya senang memberikan informasi lebih lanjut atau menguji lebih lanjut!

Pembaruan - Ini adalah log sistem saya dari konsol Amazon EC2: http://pastebin.com/4M5pwGRt

SteadH
sumber
2
Saya akan menyarankan agar melihat log sistem pada konsol AWS untuk melihat apakah ia mengatakan sesuatu tidak berjalan dengan baik saat reboot, Anda mungkin ingin memastikan bahwa kedua pemeriksaan aksesibilitas lulus ketika sistem reboot dan ketika Anda mencoba untuk ssh (pada konsol saja)
APZ
2
Anda tidak melakukan apa-apa setelah koneksi pertama? Tidak main-main dengan tabel IP atau file konfigurasi sshd? Karena sepertinya Anda menjatuhkan koneksi bukan berarti port 22 tidak tersedia.
typositoire
Apakah Anda mengacaukannya /etc/fstabsebelum memulai ulang?
David Levesque
Tidak ada perubahan iptables atau fstab sebelum reboot. Perintah pertama yang saya jalankan adalah "reboot sekarang" Saya akan memperbarui di atas dengan AWS System Logs
SteadH
Juga, pemeriksaan status keduanya baik - 2/2! Saya berharap ada sesuatu yang salah dengan pengaturan saya ... mungkin tidak!
SteadH

Jawaban:

6

Punya perilaku yang sama hari ini di contoh EC2 saya, dan melacak hal ini: ketika saya melakukan sudo reboot now mesin hang dan saya harus me-restart secara manual dari konsol manajemen aws ketika saya melakukannya sudo reboot reboot dengan baik. Rupanya "sekarang" bukan opsi yang valid untuk reboot seperti yang ditunjukkan di sini /ubuntu/397502/reboot-a-server-from-command-line

pikiran?

oromoiluig
sumber
Luar biasa! Saya mencoba ini pada contoh saya hari ini dan itu berhasil. Terima kasih!
SteadH
Juga, tautan itu lucu karena saya selalu menggunakan sudo reboot sekarang sebagai metode restart Server Ubuntu saya. Aneh!
SteadH
@oromoiluig bagaimana seseorang bisa reboot, jika tidak ssh mesin?
Vaibhav Kumar
1
@VaibhavKumar dari konsol AWS: matikan instance dan nyalakan kembali.
oromoiluig
17

Dari posting Forum Pengembang AWS tentang topik ini :

Coba hentikan instance yang rusak, lepaskan volume EBS, dan lampirkan sebagai volume sekunder ke instance lain. Setelah Anda memasang volume yang rusak di suatu tempat di instance lain, periksa file / etc / sshd_config (dekat bagian bawah). Saya punya beberapa contoh RHEL di mana Yum scrogged sshd_config menyisipkan baris duplikat di bagian bawah yang menyebabkan sshd gagal pada saat startup karena kesalahan sintaks.

Setelah Anda memperbaikinya, lepaskan saja volumenya, lepaskan, pasang kembali ke instance Anda yang lain dan nyalakan kembali.

Mari kita uraikan ini, dengan tautan ke dokumentasi AWS:

  1. Hentikan instance yang rusak dan lepaskan volume EBS (root) dengan masuk ke EC2 Management Console, klik "Elastic Block Store"> "Volumes", klik kanan pada volume yang terkait dengan instance yang Anda hentikan.
  2. Mulai instance baru di wilayah yang sama dan dari OS yang sama dengan instance yang rusak kemudian pasang volume root EBS asli sebagai volume sekunder ke instance baru Anda . Perintah pada langkah 4 di bawah ini mengasumsikan Anda memasang volume ke folder yang disebut "data".
  3. Setelah Anda memasang volume yang rusak di suatu tempat di contoh lain ,
  4. periksa file "/ etc / sshd_config" untuk entri duplikat dengan mengeluarkan perintah ini:
    • cd /etc/ssh
    • sudo nano sshd_config
    • ctrl-v beberapa kali untuk sampai ke bagian bawah file
    • ctrl-k semua baris di bagian bawah menyebutkan "PermitRootLogin tanpa kata sandi" dan "UseDNS no"
    • ctrl-xdan Yuntuk menyimpan dan keluar dari file yang diedit
  5. @Telegard menunjukkan (dalam komentarnya) bahwa kita hanya memperbaiki gejalanya. Kami dapat memperbaiki penyebabnya dengan mengomentari 3 baris terkait dalam file "/etc/rc.local". Begitu:
    • cd /etc
    • sudo nano rc.local
    • cari baris "PermitRootLogin ..." dan hapuslah
    • ctrl-xdan Yuntuk menyimpan dan keluar dari file yang diedit
  6. Setelah Anda memperbaikinya, cukup lepaskan volumenya ,
  7. lepaskan dengan masuk ke Konsol Manajemen EC2, klik "Elastic Block Store"> "Volumes", klik kanan pada volume yang terkait dengan instance yang Anda hentikan,
  8. pasang kembali ke instance Anda yang lain dan
  9. api itu kembali lagi .
Jeromy French
sumber
Pertanyaan ini mungkin juga relevan: serverfault.com/q/325140/153062
Jeromy French
Masalah yang sama dan perbaikan yang diusulkan serupa di stackoverflow.com/a/21563478/1430996 Komentar ini sangat membantu.
Jeromy French
Terima kasih untuk ini! Saya menduga ini akan memperbaiki masalah ini, dan itu cara yang baik untuk mendapatkan log SSH itu. Terima kasih!
SteadH
Ini berhasil, terima kasih. Meskipun masalah saya (gejala yang sama: "koneksi ditolak") adalah karena kepemilikan dir / var / blank / sshd salah. Seharusnya root: root. Mengapa itu berubah: tidak tahu, kami bahkan tidak pernah menutupnya. Baiklah.
cucu8
@JeromyFrench Saya memiliki masalah yang sama. Saya mengikuti prosedur tetapi saya tidak mendapatkan '"PermitRootLogin tanpa kata sandi"'. Itu memiliki "PermitRootLogin = larangan kata sandi". Apa yang harus saya lakukan?
Vaibhav Kumar
0

Ini mungkin tidak membantu situasi apa pun, tetapi saya telah melihat beberapa kasus di mana reboot pada EC2 'macet'. Jika Anda melakukan 'reset' pada VM dan kemudian retrive log sistem, itu dapat mengubah perilaku. Pastikan log berasal dari boot kedua dan bukan yang pertama - log cenderung tertunda saat pembaruan.

Satu hal lagi yang perlu diperiksa adalah memastikan bahwa instance merespons pada IP. Anda tampaknya mendapat koneksi yang ditolak di atas, yang terdengar seperti instance sedang, tetapi SSH tidak berjalan atau firewall, tetapi pastikan instance telah sepenuhnya reboot.

Anda juga dapat mencoba membuka semua port dari sistem pengujian, dan melihat apa yang 'nmap' tunjukkan kepada Anda - adalah layanan lain yang merespons instance tersebut.

Nathan Neulinger
sumber
-1

Klik kanan pada nama instance dan klik "Ubah Grup Keamanan". Pastikan bahwa grup Keamanan yang Anda buat yang memungkinkan siapa saja dari mana saja ke Port 22 dicentang dan diterapkan pada instance ini.

shaimoom
sumber
-2

Saya mendapatkan masalah ini setelah melakukan sudo reboot nowmelalui SSH pada server EC2 saya yang menjalankan Ubuntu 14.04. Bekerja dengan baik setelah mem-boot ulang menggunakan EC2 Management Console.

Kris Khaira
sumber
-2

Dalam kasus saya, saya akan membuat grup keamanan untuk memungkinkan koneksi port 22 dari IP saya saja. Beberapa hari kemudian ISP saya telah mengubah alamat IP saya, maka grup keamanan perlu memperbarui.

redcalx
sumber
-2

Saya memiliki masalah yang serupa, instance Amazon Linux EC2 saya tidak dapat dijangkau lagi setelah menjalankan sudo reboot .

Tidak ada akses SSH, berhenti / mulai / reboot perintah dari Amazon admin console tidak memberi saya hasil juga.

Saya akhirnya dapat memulai kembali instance saya dengan membuat gambar melalui konsol Amazon. Proses pembuatan gambar tampaknya memperbaiki keadaan instance.

Semoga bisa membantu;)

Romain Pellerin-Rezzi
sumber
-2

Saya memiliki masalah yang sama setelah menjalankan sudo rebootperintah vanilla . Saya menemukan bahwa saya dapat menyelesaikan masalah dengan benar-benar menghentikan (tidak me-reboot) AMI saya menggunakan konsol AWS dan kemudian memulai kembali.

Untuk alasan apa pun, me-restart AMI dari konsol AWS, seperti mengklik tindakan restart sebagai lawan berhenti dan kemudian memulai instance, tidak memperbaiki masalah.

ACV
sumber
-3

Seperti disebutkan, Anda mungkin mengacaukan / etc / fstab /

Saya punya masalah ini. Pertama, Anda harus menambahkan kembali volume di / dev / sda1 seperti pesan peringatan mengatakan.

Maka saya tidak bisa ssh. Saya menyadari bahwa saya harus menambahkan volume lain yang saya buat dan itu memperbaiki masalah ssh.

Kemudian Anda dapat masuk dan memperbaiki fstab kembali ke aslinya.

pengguna3555158
sumber
Tidak ada pengeditan fsab, hanya perintah reboot.
SteadH