14.04 सर्वर को रिबूट करने के बाद SSH की क्या समस्याएं हैं?


15

Ubuntu 14.04 पर चलने वाले सर्वर को रीबूट करने से मुझे 'कनेक्शन अस्वीकृत' त्रुटियां क्यों होती हैं?

मैं देखता हूं ssh: connect to host <IP-address-here> port 22: Connection refusedलेकिन केवल 14.04 के लिए और केवल रिबूट करने के बाद। मैं घर पर 12.04 डेस्कटॉप का उपयोग कर रहा हूं। मैं इसका निवारण कैसे करूँ?


प्रश्न को स्पष्ट करने के लिए, यहां मेरे लिए क्या काम करता है या क्या नहीं है:

  • SSH 12.04> लॉगआउट> SSH फिर से काम करता है की एक नई स्थापना में
  • SSH 12.04> रिबूट> SSH फिर से काम करता है की एक नई स्थापना में
  • 14.04 की एक नई स्थापना में SSH> लॉगआउट> फिर से SSH> काम करता है
  • 14.04 की एक नई स्थापना में SSH> रिबूट> SSH फिर से> कनेक्शन से इनकार कर दिया

मुझे जो समस्या हो रही है वह 14.04 के लिए अद्वितीय है, और केवल रिबूट करने के बाद होता है। मेरे पास इसके पहले 12.04 चलने वाले कई सर्वर हैं और सब कुछ अभी भी पूरी तरह से काम करता है। मुझे एक नया सर्वर मिला है जिसे मैं 14.04 पर उपयोग करना चाहता हूं और मैं समझना चाहता हूं कि क्या गलत हो रहा है। कोई सुझाव?


यहाँ मैंने जो अब तक कोशिश की है:

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

ट्रेसरूट ठीक काम करता है, मुझे एसएसएच पोर्ट 22 पर सर्वर से प्रतिक्रिया मिलती है।

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

14.04 सर्वर पर ssh जैसा दिखता है बूट पर शुरू करने के लिए सेट किया गया है (जैसा कि अपेक्षित है)।

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

संपादित करें: यहाँ हौसले से बनाई गई मशीन से पूरा syslog है । मैंने इसे बनाया, SSH'd in और reboot nowकमांड जारी किया, फिर दूसरी बार में SSH को रीबूट करने और इसके लिए प्रयास करने के बाद कनेक्शन से इनकार कर दिया। कंट्रोल पैनल की मेजबानी के माध्यम से हार्ड रिबूट और अब एसएसएच कनेक्शन फिर से काम करता है।


मेरे पास एक समान मुद्दा है, लेकिन बहुत अलग संदर्भ में। ऐसा लगता है कि कुछ बदल गया है, लेकिन मैं यह पता लगाने में असमर्थ हूं कि क्या। मुझे पता है कि udev के साथ बदलाव हैं, लेकिन मैं यह नहीं देखता कि यह कैसे मायने रखता है, क्योंकि नेटवर्किंग ठीक से काम करती हुई प्रतीत होती है। बस sshd परेशानी है।
जो-एर्लेंड शिनस्टैड

1
@ Jo-ErlendSchinstad मैंने AWS, DigitalOcean और OVH सर्वर के साथ परीक्षण करने में आज 2 घंटे बिताए और यह 100% समय पुन: उत्पन्न कर सकता है। 12.04 = ठीक, 14.04 = रिबूट करने के बाद कोई एसएसएच नहीं। अगर यह एक बग था, तो मुझे उम्मीद है कि हम कई अन्य लोगों से सुन रहे होंगे जो अपने सर्वर से बाहर हैं! आशा है कि मैं कुछ देख रहा हूँ, लेकिन रिबूट करने के लिए एक नए इंस्टाल + सिंगल SSH लॉगिन के साथ, यहाँ मानवीय त्रुटि के लिए बहुत जगह नहीं है। अभी इसे मेरे 14.04 लैपटॉप से ​​परीक्षण किया गया है (यदि यह 12.04 बात है) और कोई परिवर्तन नहीं हुआ, तो परिणाम। वास्तव में जल्द ही यह पता लगाने की उम्मीद है ...
टॉम ब्रॉसमैन

1
ओह, मेरे पास कई सर्वर हैं जो बिना किसी मुद्दे के sshd चला रहे हैं। यह वह मुद्दा है जिसका मैंने उल्लेख किया है: askubuntu.com/questions/479448/…
जो-एर्लेंड सिनचिनस्टैंड

जवाबों:


17

शीघ्र जवाब:

SSH समस्या नहीं है। रीबूट करने के लिए आप जिस कमांड का उपयोग करते हैं reboot now, वह समस्या है: अपने सिस्टम को रिबूट करना , करना rebootया न करना shutdown -r now

कमांड सिंटैक्स ( 13.04 के बाद से ) है:

reboot [OPTION]...  [REBOOTCOMMAND]

REBOOTCOMMANDपहले से ही अस्तित्व में कभी नहीं। 12.04 में, आपकी nowउपेक्षा की गई थी लेकिन अब इसका उपयोग किया जा रहा है ... और यह सब कुछ तोड़ रहा है।

मेरे परीक्षणों के परिणामों और स्पष्टीकरण के साथ लंबा उत्तर:

मुझे 14.04 और VPS में चलने वाले कुछ सर्वरों के साथ भी ऐसी ही समस्या है (फ्रेंच OVH प्रदाता - OpenVZ चलाने वाले) और जब reboot nowसर्वर के अंदर ही कर रहे हैं ।

आप की तरह मैंने reboot nowकंसोल से कमांड जारी किया है (एसएसएच का उपयोग करके लॉग इन किया गया है)। मेरे दबाने के कुछ सेकंड बाद RETURN, मेरा सत्र अपने आप डिस्कनेक्ट हो जाता है। आप की तरह मैं इस आदेश को जारी करने के बाद SSH के माध्यम से सर्वर को फिर से जोड़ने में सक्षम नहीं हूं।

इसलिए, मैंने ओवीएच द्वारा प्रदान किए गए केवीएम कंसोल को खोलने का निर्णय लिया। (इस तरह के वर्चुअल सर्वर के लिए भौतिक सर्वर पर कीबोर्ड और स्क्रीन का उपयोग करके सीधे पहुंच का अनुकरण करना)।

मैं अपनी मशीन से कनेक्ट करने में सक्षम था और मैंने देखा कि वह सिंगल यूजर मोड में प्रवेश कर रहा था, मुझे प्रतीक्षा करने के लिए CTRL+ Dजारी रखने या रूट पासवर्ड को रखरखाव मोड में जाने के लिए दबा रहा था । मैंने प्रक्रिया को जारी रखने के लिए कुंजी संयोजन को दबाया और फिर अपने सिस्टम में SSH में सक्षम हो गया। दौड़ने के बाद, देखने के लिए मेरा अनुमान क्या था uptime, कि अपटाइम 2 या 3 मिनट नहीं था, लेकिन फिर भी बहुत दिन: reboot nowएक उबंटू 14.04 वीपीएस के अंदर निष्पादित वास्तव में रिबूट नहीं है, लेकिन सिर्फ सिंगल यूजर मोड में जाने के लिए कह रहा है!

इससे, मैंने अपने VPS के भीतर से रिबूट कभी नहीं पूछने के लिए सीखा है लेकिन इसे होस्टर के प्रबंधन इंटरफ़ेस पर प्रदान की गई कमांड से अनुरोध करना है।

इस प्रकार आपके SSH स्थापना के साथ कोई समस्या नहीं है। समस्या तब होती है जब आप टाइप करते हैं reboot now। वास्तव में, मैंने इसे बाद में भी परीक्षण किया, यदि आपने टाइप किया था reboot(बस शब्द, कोई विकल्प नहीं), तो यह वही होता जो आप करने का इरादा कर रहे थे: सर्वर को रिबूट करें।

rebootएक तर्क (मैन पेज से) का उपयोग करके shutdownदिए गए तर्कों के साथ कमांड को कॉल करें । और वास्तव में, अगर मैं निष्पादित करता हूं, तो मेरे shutdown nowपास एक ही व्यवहार है: सिस्टम को रिबूट नहीं किया जाता है, यह एकल उपयोगकर्ता मोड में जाता है।

टिप्पणी: ऐसा लगता है कि यह इच्छित व्यवहार है क्योंकि इस आदेश को निष्पादित करने के बाद स्क्रीन पर दिखाई देने वाला संदेश कुछ इस तरह कहता है:

सिस्टम को रखरखाव मोड में लाया जाएगा

रखरखाव मोड या एकल उपयोगकर्ता मोड, यह उसी का प्रतिनिधित्व करता है, एक रनवे एक शेल से अधिक, कोई नेटवर्क नहीं, कोई नेटवर्क प्रक्रिया नहीं ...

यह भ्रामक हो सकता है, लेकिन ध्यान दें कि इसका सही उपयोग shutdownहै, उदाहरण के लिए: shutdown -h nowअब सिस्टम को रोकना या shutdown -r nowइसे अब रिबूट करना। मुझे पता नहीं था कि shutdown nowसिस्टम को केवल एक उपयोगकर्ता मोड में लाया जाएगा। मैं आमतौर पर इसे init Sहासिल करने के लिए करता हूं ।


इस सबसे दिलचस्प जवाब के लिए धन्यवाद! मैं अब यह सब परीक्षण करने जा रहा हूं क्योंकि मैं एक समर्पित सर्वर (वीपीएस नहीं) पर हूं, लेकिन मेरे पास दोनों प्रकारों पर मुद्दा था - इसलिए जब तक यह 14.04 था और 12.04 नहीं था। sudo reboot now12.04 में पूरी तरह से काम करता है और uptimeआखिरी बार जब मैं ऐसा करता हूं, तो उससे मेल खाता है। 14.04 के लिए बहुत दिलचस्प परिवर्तन हालांकि।
टॉम ब्रॉसमैन

1
सर्वर को 14.04.1 को अपडेट करने के बाद सटीक समस्या होती है, और रिबूट इसे हल नहीं करता है।
छैनीताल

इसने मेरे लिए इसे ठीक कर दिया। सर्वर को मैन्युअल रूप से रिबूट करना पड़ा। वाह, यह सुपर कष्टप्रद है! पृथ्वी पर अब एकल उपयोगकर्ता मोड के बराबर क्यों होगा? क्या एक गूंगा पसंद है। क्यों नहीं sudo reboot --single-userहै कि कार्यक्षमता पाने के लिए ???
जूलम

2

मुझे देर हो सकती है, और यह स्पष्ट हो सकता है, लेकिन मेरे लिए जो काम किया गया वह कॉन्फ़िगरेशन फ़ाइल की जांच करने के लिए था /etc/ssh/sshd_config: डेमॉन को चलाने के साथ /etc/init.d/ssh startया किसी अन्य संयोजन से पता चला कि सेवा चल रही थी, भले ही वह नहीं थी, लेकिन अगर मैं निष्पादन योग्य लॉन्च करता हूं इसका पूर्ण पथ (मेरे मामले में /usr/sbin/sshd) मैंने देखा कि कॉन्फ़िगरेशन फ़ाइल के अंत में एक "0B" जोड़ा गया था जो शुरू करते समय एक त्रुटि का कारण बना, इसे हटाने से समस्या हल हो गई।


बहुत उपयोगी - मेरे मामले में मैंने फ़ाइल की शुरुआत में एक गलत चरित्र टाइप किया था। बहुत ही रहस्यमय कैसे कोई त्रुटि फेंक दी जाती है अगर वहाँ एक समस्या है, और सब कुछ शुरू होता है, भले ही कोई प्रक्रिया नहीं चल रही है।
एंड्रयू माओ

2

एक और संभावित कारण ufwSSH पोर्ट नियम कॉन्फ़िगरेशन खो रहा है। यह मेरे लिए कम से कम एक या दो अवसरों पर हुआ है, जहां अद्यतन लागू करने और रिबूट करने के बाद, फ़ायरवॉल कॉन्फ़िगरेशन मुझे सर्वर तक पहुंच प्राप्त करने से रोक रहा था। मेरे होस्टिंग प्रदाता के वीपीएस कंसोल सुविधा का उपयोग करने से मुझे मशीन पर आने और समस्या का निदान करने की अनुमति मिली। समस्या दिखाने के नीचे उदाहरण (यानी पोर्ट 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)

पोर्ट को फिर से सक्षम करना निम्नानुसार है:

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

-1

मेरे सिस्टम के लिए समस्या यह थी कि ssh init स्क्रिप्ट /etc/init.d/sshकेवल एक initart संस्करण की उपस्थिति के लिए जाँच थी।

इसलिए /etc/init.d/sshशुरू नहीं होता ssh,क्योंकि यह मानता है कि यह शुरू हो जाएगा upstart

मेरे मामले में, अपस्टार्ट मेरे विशेष विन्यास के कारण शुरू नहीं होता है:

इसमें एक सही कॉन्फ़िगरेशन था /etc/init/ssh.conf, लेकिन इसमें एक /etc/init/ssh.overrideफ़ाइल भी थी manual, जिसका मतलब sshहै कि मैन्युअल रूप से शुरू होने की उम्मीद है।

यह फ़ाइल get-remnux.shइंस्टॉलेशन स्क्रिप्ट द्वारा बनाई गई थी ।

मैन्युअल रूप से शुरू करना, या /etc/init/ssh.overrideफ़ाइल को निकालना समस्या का हल करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.