Pertanyaan Apa yang menyebabkan masalah SSH setelah me-reboot server 14.04?


Mengapa me-reboot server yang menjalankan Ubuntu 14.04 memberi saya 'Koneksi ditolak' kesalahan?

saya melihat ssh: connect to host <IP-address-here> port 22: Connection refused tetapi hanya untuk 14.04 dan hanya setelah reboot. Saya menggunakan 12.04 Desktop di rumah. Bagaimana cara saya memecahkan masalah ini?


Untuk membuat pertanyaan lebih jelas, inilah yang bekerja atau tidak berhasil untuk saya:

  • SSH menjadi instalasi baru dari 12.04> logout> SSH lagi> bekerja
  • SSH ke dalam instalasi baru dari 12.04> reboot> SSH di lagi> bekerja
  • SSH ke instalasi baru dari 14.04> logout> SSH lagi> bekerja
  • SSH menjadi instalasi baru dari 14.04> reboot> SSH lagi> Koneksi ditolak

Masalah yang saya miliki adalah unik untuk 14.04, dan hanya terjadi setelah reboot. Saya memiliki beberapa server yang menjalankan 12.04 sebelum ini dan semuanya masih berfungsi dengan sempurna. Saya punya server baru yang ingin saya gunakan 14.04 dan saya ingin memahami apa yang salah. Ada saran?


Inilah yang saya coba sejauh ini:

sudo traceroute -p 22 -T <IP-address-here>

Traceroute berfungsi dengan baik, saya mendapat respon dari server di port SSH 22.

initctl list
...
ssh start/running, process 23371
...

Sepertinya ssh pada server 14.04 diatur untuk memulai saat boot (seperti yang diharapkan).

tom@Desktop:~$ ssh -vvv root@<IP-address-here>
OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to <IP-address-here> [<IP-address-here>] port 22.
debug1: connect to address <IP-address-here> port 22: Connection refused
ssh: connect to host <IP-address-here> port 22: Connection refused

Edit: Ini dia seluruh syslog dari mesin yang baru dibuat. Saya membuatnya, SSH & diterbitkan reboot now perintah, kemudian mendapat koneksi ditolak kesalahan setelah menunggu untuk reboot dan mencoba SSH di kedua kalinya. Hard reboot melalui panel kontrol hosting dan sekarang koneksi SSH berfungsi kembali.


14
2018-06-15 14:51


asal


Saya memiliki masalah serupa, tetapi dalam konteks yang sangat berbeda. Tampaknya sesuatu telah berubah, tetapi saya tidak dapat mencari tahu apa. Saya tahu ada perubahan dengan udev, tetapi saya tidak melihat bagaimana tepatnya itu akan berpengaruh, karena jaringan tampaknya berfungsi dengan baik. Hanya sshd itu merepotkan. - Jo-Erlend Schinstad
@ Jo-ErlendSchinstad Saya menghabiskan 2 jam hari ini untuk menguji ini dengan server AWS, DigitalOcean dan OVH dan dapat mereproduksinya 100% dari waktu. 12.04 = ok, 14.04 = tidak ada SSH setelah reboot. Jika ini adalah bug, saya berharap kita akan mendengar dari banyak orang lain yang terkunci di server mereka! Harap saya mengabaikan sesuatu tetapi dengan menginstal + SSH login baru untuk reboot, tidak ada banyak ruang untuk kesalahan manusia di sini. Hanya diuji sekarang dari laptop 14.04 saya (dalam hal ini adalah hal 12.04) dan tidak ada perubahan, hasil yang sama. Sangat berharap untuk mengetahui hal ini segera ... - Tom Brossman
Oh, saya punya banyak server yang menjalankan sshd tanpa masalah sama sekali. Ini adalah masalah yang saya sebut: askubuntu.com/questions/479448/… - Jo-Erlend Schinstad


Jawaban:


Jawaban cepat:

SSH bukan masalah. Perintah yang Anda gunakan untuk reboot adalah masalahnya: jangan lakukan reboot now, lakukan reboot atau shutdown -r now untuk mem-boot ulang sistem Anda.

Sintaks perintah (sejak 13.04) telah:

reboot [OPTION]...  [REBOOTCOMMAND]

Itu REBOOTCOMMAND tidak pernah ada sebelumnya. Di 12.04, Anda now hanya diabaikan tapi sekarang digunakan ... Dan itu melanggar segalanya.

Jawaban panjang, dengan hasil tes dan penjelasan saya:

Saya memiliki masalah serupa dengan beberapa server yang menjalankan 14.04 DAN di VPS (dihosting di penyedia OVH Prancis - menjalankan OpenVZ) DAN ketika melakukan reboot now di dalam server itu sendiri.

Seperti Anda saya telah mengeluarkan perintah reboot now dari konsol (masuk menggunakan SSH). Beberapa detik setelah saya menekan KEMBALI, sesi saya secara otomatis terputus. Seperti Anda, saya tidak pernah dapat terhubung kembali ke server melalui SSH setelah mengeluarkan perintah ini.

Jadi, saya memutuskan untuk membuka konsol KVM yang disediakan oleh OVH. (meniru akses langsung menggunakan keyboard dan layar pada server fisik untuk server virtual semacam ini).

Saya dapat terhubung ke komputer saya dan saya melihat bahwa dia masuk ke Single User Mode, menunggu saya untuk menekan CTRL+D untuk melanjutkan atau memasukkan kata sandi root untuk masuk ke mode pemeliharaan. Saya menekan kombinasi tombol untuk pergi membiarkan proses berlanjut dan kemudian bisa SSH ke sistem saya lagi. Apa yang saya lihat, setelah berlari uptime, bahwa uptime tidak 2 atau 3 menit tetapi belum banyak hari: reboot nowdieksekusi di dalam Ubuntu 14.04 VPS tidak benar-benar me-reboot tetapi hanya meminta untuk masuk ke mode Single User!

Dari ini, saya belajar untuk tidak pernah meminta reboot dari dalam VPS saya tetapi untuk memintanya dari perintah yang diberikan pada antarmuka manajemen penghosting.

Jadi tidak ada masalah dengan instalasi SSH Anda. Masalahnya adalah ketika Anda mengetik reboot now. Bahkan, saya mengujinya sesudah itu juga, jika Anda mengetik reboot (hanya kata, tidak ada opsi), itu akan melakukan apa yang ingin Anda lakukan: reboot server.

Menggunakan reboot dengan argumen (dari halaman manual) memanggil perintah shutdown dengan argumen yang diberikan. Dan memang, jika saya mengeksekusi shutdown now, Saya memiliki perilaku yang sama: sistem tidak di-reboot, itu masuk ke mode pengguna tunggal.

Ucapan: Sepertinya itu adalah perilaku yang dimaksudkan ketika pesan muncul di layar setelah melakukan perintah ini mengatakan sesuatu seperti:

Sistem akan dibawa ke mode pemeliharaan

Mode pemeliharaan atau mode pengguna tunggal, ini mewakili yang sama, runlevel dengan catatan lebih dari shell, tidak ada jaringan, tidak ada proses jaringan, ...

Ini mungkin membingungkan, tetapi perhatikan bahwa penggunaan yang benar shutdown adalah, misalnya: shutdown -h now untuk menghentikan sistem sekarang atau shutdown -r now untuk reboot sekarang. Saya tidak menyadarinya shutdown now hanya akan membawa sistem ke mode pengguna tunggal. Saya biasanya melakukannya init S untuk mencapai ini.


15
2018-06-18 12:01



Terima kasih atas jawaban yang paling menarik ini! Saya akan menguji semua ini sekarang karena saya berada di server khusus (bukan VPS) tetapi saya memiliki masalah pada kedua jenis - asalkan itu 14.04 dan bukan 12.04. sudo reboot now bekerja dengan sempurna di 12.04 dan uptime sesuai dengan terakhir kali saya melakukannya. Perubahan yang sangat menarik untuk 14,04 sekalipun. - Tom Brossman
memiliki masalah yang sama persis setelah memperbarui server ke 14.04.1, dan reboot tidak menyelesaikannya. - chhantyal
Ini memperbaikinya untuk saya. Harus reboot server secara manual. Wow, ini sangat menyebalkan! Mengapa sekarang akan sama dengan mode pengguna tunggal? Pilihan yang bodoh. Kenapa tidak sudo reboot --single-user untuk mendapatkan fungsi itu ??? - jcollum


Saya mungkin terlambat, dan itu mungkin sudah jelas, tetapi yang berhasil bagi saya adalah memeriksa file konfigurasi /etc/ssh/sshd_config : menjalankan daemon dengan /etc/init.d/ssh start atau kombinasi lain menunjukkan bahwa layanan itu berjalan walaupun tidak, tetapi jika saya meluncurkan eksekusi dengan jalur absolutnya (dalam kasus saya /usr/sbin/sshd) Saya melihat bahwa ada "0B" yang ditambahkan pada akhir file konfigurasi yang menyebabkan kesalahan saat memulai, menghapusnya memecahkan masalah.


2
2018-01-30 14:26



Sangat berguna - dalam kasus saya, saya telah mengetik karakter yang salah di awal file. Sangat misterius bagaimana tidak ada kesalahan yang dilemparkan jika ada masalah dalam konfigurasi, dan semuanya tampaknya mulai meskipun tidak ada proses yang berjalan. - Andrew Mao


Penyebab potensial lainnya adalah ufw kehilangan konfigurasi aturan port SSH. Ini telah terjadi pada saya setidaknya satu atau dua kali, di mana setelah menerapkan pembaruan dan reboot, konfigurasi firewall menghalangi saya mendapatkan akses ke server. Menggunakan fasilitas konsol VPS penyedia hosting saya memungkinkan saya untuk masuk ke mesin dan mendiagnosis masalah. Contoh di bawah ini menunjukkan masalah (mis. Tidak ada entri untuk port 22):

user@host:~$ sudo ufw status verbose
[sudo] password for user:
Status: active
Logging: on (low)
    Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
80,443/tcp (Nginx Full)    ALLOW IN    Anywhere
25/tcp                     ALLOW IN    Anywhere
143                        ALLOW IN    Anywhere
110                        ALLOW IN    Anywhere
993/tcp (Dovecot Secure IMAP) ALLOW IN    Anywhere
995/tcp (Dovecot Secure POP3) ALLOW IN    Anywhere
25/tcp (Postfix)           ALLOW IN    Anywhere
465/tcp (Postfix SMTPS)    ALLOW IN    Anywhere
80,443/tcp (Nginx Full (v6)) ALLOW IN    Anywhere (v6)
25/tcp (v6)                ALLOW IN    Anywhere (v6)
143 (v6)                   ALLOW IN    Anywhere (v6)
110 (v6)                   ALLOW IN    Anywhere (v6)
993/tcp (Dovecot Secure IMAP (v6)) ALLOW IN    Anywhere (v6)
995/tcp (Dovecot Secure POP3 (v6)) ALLOW IN    Anywhere (v6)
25/tcp (Postfix (v6))      ALLOW IN    Anywhere (v6)
465/tcp (Postfix SMTPS (v6)) ALLOW IN    Anywhere (v6)

Mengaktifkan kembali port sebagai berikut melakukan trik:

user@host:~$ sudo ufw allow ssh
Rule added
Rule added (v6)

2
2017-09-30 23:21



Inilah yang berhasil bagi saya. Terima kasih! - Kodie Grantham


Untuk sistem saya masalahnya adalah skrip init ssh /etc/init.d/ssh adalah satu-satunya yang memeriksa keberadaan versi pemula dari init.

Begitu /etc/init.d/ssh tidak mulai ssh, karena percaya itu akan dimulai oleh upstart.

Dalam kasus saya, pemula tidak memulai karena konfigurasi khusus saya:

Ada konfigurasi yang benar di /etc/init/ssh.conf, tetapi ada juga /etc/init/ssh.override file yang berisi manual, yang berarti ssh diharapkan akan dimulai secara manual.

File ini dibuat oleh get-remnux.sh skrip instalasi.

Mulai secara manual, atau menghapus /etc/init/ssh.override file memecahkan masalah.


-1
2017-08-07 15:13