SSH को बूट पर स्वचालित रूप से प्रारंभ करें


15

पूरी तरह से लिनक्स और Ubnuntu के लिए नए ब्रांड। गहरी सीखने / तंत्रिका नेटवर्क करने के लिए एक मशीन की स्थापना। अभी तक यह ठीक चल रहा है। सब कुछ स्थापित और चल रहा है। मैं सिस्टम का उपयोग करने के लिए अपने मैक लैपटॉप से ​​ssh करने में सक्षम होना चाहता हूं। मैंने ओपनश को स्थापित किया और उस काम को किया।

हालाँकि जब मैं मशीन को पुनरारंभ करता हूं, ssh सर्वर पुनरारंभ नहीं होता है। मैं जाँच करता हूँ sudo service ssh statusऔर यह रिपोर्ट और त्रुटि है। मैं तो इसे शुरू कर सकता हूं और सब कुछ ठीक काम करता है।

मेरा पहला विचार मुझे रिबूट पर शुरू करने के लिए यह बताने की आवश्यकता थी, और मुझे यह धागा मिला, जो कहता है कि इसे डिफ़ॉल्ट रूप से शुरू होना चाहिए और मुझे एक चॉरटेब या ऐसा कुछ भी जोड़ने की आवश्यकता नहीं है। इसलिए मुझे नहीं लगता कि ऐसा है।

तब मुझे यह धागा मिला जो कमांड का उपयोग करने का सुझाव देता है sudo update-rc.d ssh defaults, लेकिन यह धागा काफी पुराना है और ऐसा लगता है कि उत्तर शायद तब भी ठीक नहीं था?

तो फिर मुझे यह धागा मिला, जो sshd_config फ़ाइल ListenAddressमें लाइन को टिप्पणी करने का सुझाव देता है । मूल रूप से यह कहता है कि अगर ListenAddress का उपयोग किया जाता है तो यह DCHP द्वारा असाइन किए जाने से पहले IP प्राप्त करने का प्रयास कर सकता है और इसलिए स्टार्ट अप विफल हो जाता है। जो समझ में आता है। लेकिन मुझे अपने होम नेटवर्क पर अपने पोर्ट फ़ॉरवर्डिंग कार्य करने के लिए उस पैरामीटर की आवश्यकता है।

ListenAddress के लिए प्रविष्टि के तहत यह प्रलेखन कहता है कि

The default is to listen on all local addresses.

इसलिए हो सकता है कि मुझे पोर्ट फॉरवर्डिंग का काम करने की आवश्यकता न हो?

मैंने इस बग रिपोर्ट के पिछले धागे का अनुसरण किया, जो काफी पुराना है, लेकिन हर बार नेटमैनेजर को नया आईपी प्राप्त करने के लिए नेटवर्क प्रबंधक का उपयोग करने की सलाह देता है।

echo /etc/init.d/ssh restart > /etc/NetworkManager/dispatcher.d/10ssh
chmod 755 /etc/NetworkManager/dispatcher.d/10ssh

इस बिंदु पर इस noobie का मूल्यांकन कर सकते हैं कि एक बहुत अधिक है। क्या वह सुरक्षित है? क्या ऐसा करने का तरीका है? पिछले 7 वर्षों में कुछ और काम किया गया है?

कोई भी सलाह बहुत उपयोगी होगी। धन्यवाद।


जी, मैंने केवल ओपनश-सर्वर पैकेज स्थापित किया है और इसे ठीक से कॉन्फ़िगर किया है। मेरा ssh सर्वर स्वचालित रूप से हर बार ठीक से शुरू हो गया है। किसी भी अतिरिक्त fiddling के लिए कोई ज़रूरत नहीं है।
user535733

1
क्या आप पोर्ट फ़ॉरवर्डिंग का उपयोग कर रहे हैं और आपको ListenAddress पैरामीटर का उपयोग करने की आवश्यकता नहीं है? यदि हां, तो क्या आप इसे साझा कर सकते हैं "इसमें ठीक से कॉन्फ़िगर किया गया" शामिल है?
रोथ्रोक

जब आप पहली बार बूट करते हैं, तो इस सब के लिए, आपने SSH की स्थिति के बारे में कोई जानकारी नहीं दी है। systemctl status sshआउटपुट क्या करता है?
मुरु

आपका मुद्दा इस तरह से प्रकट होता है (जाहिरा तौर पर अनसुलझा) एसएसएच डेमन सामान्य रूप से शुरू नहीं करता है - क्या आप कृपया अपने प्रश्न को संपादित करने के लिए शामिल कर सकते हैंsystemctl status NetworkManager-wait-online.service
स्टीलराइवर

1
आपके पास अपना पोर्ट फ़ॉरवर्डिंग सेटअप कैसे है? मैं बिल्कुल नहीं सुनता हूं और चीजें मेरे होम सर्वर पर ठीक काम करती हैं। मेरा राउटर कुछ भी है जो एक पोर्ट पर आता है जिसे मैं निर्दिष्ट करता हूं (22 यदि आप मानक पोर्ट चाहते हैं, लेकिन आप कुछ भी तब तक उपयोग कर सकते हैं जब तक कि मैं आपके इंटाल नेटवर्क पर अन्य सेवाओं के साथ संघर्ष नहीं करता) जो मैं चाहता हूं। उदाहरण के लिए पोर्ट 12345 पर आने वाली किसी भी चीज को मेरे सेंटोस सर्वर पर पोर्ट 22 पर भेज दिया जाता है। १२३४६ पर जो भी आता है, वह मेरे मुखिया रासपी के २२ पोर्ट को आगे बढ़ाता है। जो कुछ भी 12347 पर आता है वह मेरे रासपी पर आईआरसी बाउंसर के लिए 6697 पोर्ट करने के लिए जाता है।
राबर्टरसेटल

जवाबों:


43

क्या आपने बस सेटिंग करने की कोशिश की है

sudo systemctl enable ssh

?

यही कारण है कि मेरे पास स्टार्ट अप पर चलने के लिए मेरा ssh सेट है।

**** मैं उत्तर के ऊपर के भाग में छोड़ रहा हूँ अगर यह इस पोस्ट पर आने वाले अन्य लोगों के लिए उपयोगी है तो ****

ऊपर से मेरी टिप्पणी का हवाला देते हुए:

आपके पास अपना पोर्ट फ़ॉरवर्डिंग सेटअप कैसे है? मैं बिल्कुल नहीं सुनता हूं और चीजें मेरे होम सर्वर पर ठीक काम करती हैं। मेरा राउटर कुछ भी है जो एक पोर्ट पर आता है जिसे मैं निर्दिष्ट करता हूं (22 यदि आप मानक पोर्ट चाहते हैं, लेकिन आप कुछ भी तब तक उपयोग कर सकते हैं जब तक कि मैं आपके इंटाल नेटवर्क पर अन्य सेवाओं के साथ संघर्ष नहीं करता) जो मैं चाहता हूं। उदाहरण के लिए पोर्ट 12345 पर आने वाली किसी भी चीज को मेरे सेंटोस सर्वर पर पोर्ट 22 पर भेज दिया जाता है। १२३४६ पर जो भी आता है, वह मेरे मुखिया रासपी के २२ पोर्ट को आगे बढ़ाता है। जो कुछ भी 12347 पर आता है वह मेरे रासपी पर आईआरसी बाउंसर के लिए 6697 पोर्ट करने के लिए जाता है

ListenAddress का पोर्ट फोरवाडिंग से कोई लेना-देना नहीं है, ListenAdress का उपयोग एक सर्वर के लिए किया जा सकता है जो एक या अधिक एनआईसी पर कई आईपी पते से कॉन्फ़िगर किया गया है। यहाँ से उद्धृत (पूरा पृष्ठ एक अच्छा विवरण है): https://www.cyberciti.biz/tips/howto-openssh-sshd-listen-multiple-ip-address.html

मान लें कि आपके पास कुल 8 सार्वजनिक IP पता और एक निजी IP पता है। आप> केवल एक चयनित सार्वजनिक IP (उदा 70.5.xx.xx) और निजी> IP (10.1.5.1) पर sshd को बांधना चाहेंगे।

सौभाग्य से ListenAddress विकल्प का उपयोग करके इसे प्राप्त करने का एक आसान तरीका है। यह> स्थानीय पते को निर्दिष्ट करता है जिस पर sshd को सुनना चाहिए। यदि यह निर्देश है> कॉन्फ़िगरेशन फ़ाइल से छोड़ी गई sshd सभी उपलब्ध IP> पते पर बंधेगी या सूचीबद्ध होगी।

यह ssh कनेक्शनों को स्वीकार करने के लिए आपके कई आईपी में से एक को अनुमति देने के लिए है। मैं अनुमान लगा रहा हूँ कि आप अपने सार्वजनिक IP या राउटर के आंतरिक IP पर ListenAddress सेट करें - यदि आप अपने सर्वर के स्थानीय IP पर यह ठीक काम करते हैं, तो मैं अनुमान लगा रहा हूँ। भले ही, अब आप जानते हैं कि ListenAddress कैसे काम करता है और यदि आप एक अधिक जटिल सर्वर को कॉन्फ़िगर करना चाहते हैं तो आप तैयार होंगे। सुनकर खुशी हुई कि आपको काम करने का मौका मिला।


2
+1 यह सही उत्तर है। उबंटू 16.04 ने सिस्टमड का उपयोग शुरू किया। इस उत्तर में कमांड रिबूट पर एसएसएच शुरू करने के लिए सिस्टमड का उपयोग कर रहा है। ओपी से जुड़े अन्य सूत्र केवल अपस्टार्ट और सिस्टमड पर लागू होते हैं या उनकी समस्या पर लागू नहीं होते हैं।
सैम गेल्के

1
मैंने सिस्टम-लिस्ट-यूनिट-फाइल्स –टाइप = सेवा की और मैंने देखा कि ssh.service सक्षम है। इसलिए मुझे नहीं लगता कि यह समस्या है। लेकिन systemctl / systemd पर टिप के लिए धन्यवाद। यह मुझे देखने के लिए और जगह देता है। क्या DCHP द्वारा IP पता लौटने तक प्रतीक्षा करने के लिए systemd / systemctl बताने का कोई तरीका है?
रोथ्रोक

सक्षम करने के बाद, एक नई फ़ाइल बनाई जानी चाहिए, साथ में जांच करेंls -l /etc/systemd/system/sshd.service
टिमो

2

जैसा कि सुझाए गए समाधान ने मेरे लिए काम नहीं किया, मैंने अंततः पाया कि बूट पर एसएसएच शुरू करने के लिए अतिरिक्त कमांड की आवश्यकता है:

sudo update-rc.d ssh defaults
sudo systemctl enable ssh.socket

कुछ ने बताया कि यह कमांड:

sudo systemctl enable ssh.service

इस आदेश के बजाय निष्पादित किया जाना चाहिए:

sudo systemctl enable ssh

उबंटू 18, कोई भी काम नहीं किया। मुझे GUI से किसी अन्य मशीन से ssh करने में सक्षम होने के लिए लॉगिन की आवश्यकता है।
प्रातः
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.