लॉन्चर उत्पाद Bitnami दस्तावेज़imaxe CLI ब्लॉग संपर्क
imaxe ssh पहुँच v1.0.0

SSH पहुँच, नियंत्रण में

फ़ाइलों को हाथ से संपादित किए बिना अपने सर्वर की रिमोट पहुँच का प्रबंधन करें: अधिकृत कुंजियाँ, host कुंजियाँ, सक्रिय सत्र और sshd हार्डनिंग, सब कुछ पुनः लोड करने से पहले एक कॉन्फ़िगरेशन जाँच के साथ।

$ imaxe ssh status
संस्करण
v1.0.0
उपआदेश
10
कॉन्फ़िग
/etc/imaxe/ssh.yml
root आवश्यक
हाँ
प्रबंधित उपयोगकर्ता
ubuntu

यह मॉड्यूल क्या करता है #

SSH आपके सर्वर में प्रवेश का रास्ता है: वह एन्क्रिप्टेड चैनल जिससे आप इसे प्रशासित करने के लिए जुड़ते हैं। यह सुनिश्चित करना कि वह दरवाज़ा ठीक से लगा है — सही कुंजियों के साथ और बिना किसी अतिरिक्त ताले के — यही एक सुरक्षित सर्वर को एक उजागर सर्वर से अलग करता है।

ssh मॉड्यूल उस रिमोट पहुँच के कार्यों को एक ही आदेश में एकत्र करता है: यह उपयोगकर्ता की अधिकृत कुंजियों का प्रबंधन करता है (जोड़ें, सूचीबद्ध करें, हटाएँ), उन host कुंजियों को नियंत्रित करता है जिनसे सर्वर क्लाइंट के सामने अपनी पहचान बताता है, सक्रिय सत्र दिखाता है, और आपकी कॉन्फ़िगरेशन में परिभाषित sshd हार्डनिंग की जाँच या पुनः लागू करता है। sshd को छूने वाला हर ऑपरेशन पहले कॉन्फ़िगरेशन को मान्य करता है (sshd -t) ताकि कोई गलत बदलाव आपको बाहर न कर सके।

शुरू करने से पहले

कुंजियाँ बदलते समय या sshd को पुनरारंभ करते समय एक सत्र खुला रखें: इस तरह, यदि कुछ गलत होता है, तो आप अभी भी ठीक करने के लिए अंदर हैं। डिफ़ॉल्ट रूप से मॉड्यूल प्रबंधित उपयोगकर्ता ubuntu पर काम करता है; किसी अन्य पर काम करने के लिए --user का उपयोग करें।

त्वरित गाइडचरण-दर-चरण कार्य

सामान्य कार्य #

चुनें कि आप क्या करना चाहते हैं। हर रेसिपी में आदेश पहले से लिखा हुआ आता है — बस अपने उपयोगकर्ता या कुंजी को डालें और कॉपी करें दबाएँ।

1

SSH पहुँच स्थिति देखें

एक नज़र में जाँचें कि sshd सक्रिय है और ठीक से कॉन्फ़िगर है।

ubuntu उपयोगकर्ता के साथ SSH से अपने सर्वर पर कनेक्ट करें और चलाएँ:

terminal
$ sudo imaxe ssh status

किसी स्क्रिप्ट के लिए चाहिए? --json जोड़ें और आपको वही जानकारी मशीन-पठनीय रूप में मिलेगी:

terminal
$ sudo imaxe ssh status --json
आप देखेंगे कि sshd सक्रिय है या नहीं, यह किस पोर्ट पर सुनता है, और लागू हार्डनिंग का सारांश।
2

कोई अधिकृत कुंजी जोड़ें या हटाएँ

किसी नई मशीन को पहुँच दें या किसी को रद्द करें जिसे आप अब उपयोग नहीं करते।

पहले, देखें कि प्रबंधित उपयोगकर्ता के लिए वर्तमान में कौन-सी कुंजियाँ अधिकृत हैं:

terminal
$ sudo imaxe ssh keys list

एक सार्वजनिक कुंजी को आर्गुमेंट के रूप में पास करके जोड़ें (या इसे मानक इनपुट से पढ़ने के लिए - का उपयोग करें):

terminal
$ sudo imaxe ssh keys add "ssh-ed25519 AAAAC3Nz... ana@portatil" --comment "ana@portatil"

अब ज़रूरी नहीं? इसे इसके fingerprint या इसकी टिप्पणी से हटाएँ:

terminal
$ sudo imaxe ssh keys remove "ana@portatil"
उपयोगकर्ता की authorized_keys अद्यतन हो जाती है। परिणाम keys list से जाँचें।
3

क्लोनिंग के बाद host कुंजियाँ पुनर्जनित करें

किसी AMI से मशीन बनाने के बाद आवश्यक।

जब आप किसी इमेज को क्लोन करते हैं, तो हर प्रति वही सर्वर पहचान विरासत में पाती है। इस मशीन के लिए नई, अनन्य host कुंजियाँ उत्पन्न करें:

terminal
$ sudo imaxe ssh hostkeys regenerate --yes
सर्वर को अपनी खुद की पहचान मिलती है। ध्यान दें: fingerprint बदल जाता है, इसलिए हर क्लाइंट का पहला पुनर्कनेक्शन आपसे इसे फिर स्वीकार करने को कहेगा।
4

हार्डनिंग की समीक्षा और पुनः लागू करें

जाँचें कि sshd अब भी वैसा ही कॉन्फ़िगर है जैसा होना चाहिए, और न हो तो ठीक करें।

वर्तमान हार्डनिंग की वांछित हार्डनिंग (जो आपकी कॉन्फ़िगरेशन परिभाषित करती है) से तुलना करें:

terminal
$ sudo imaxe ssh harden show

कोई अंतर? YAML से हार्डनिंग पुनः लागू करें और sshd को सुरक्षित रूप से पुनः लोड करें:

terminal
$ sudo imaxe ssh harden reapply
कॉन्फ़िगरेशन वांछित स्थिति में लौट आती है (SSH पर कोई root नहीं, कोई पासवर्ड नहीं, केवल सार्वजनिक कुंजी) और sshd आपके सत्र को गिराए बिना पुनः लोड होता है।
5

सत्र देखें और sshd पुनरारंभ करें

देखें कौन जुड़ा है और खुद को बाहर करने के डर के बिना बदलाव लागू करें।

अभी सक्रिय SSH सत्रों को सूचीबद्ध करें:

terminal
$ sudo imaxe ssh sessions

कॉन्फ़िगरेशन बदलाव लागू करने के लिए, reload को प्राथमिकता दें (यह कनेक्शन नहीं गिराता); पूर्ण पुनरारंभ आवश्यक होने पर ही restart का उपयोग करें। दोनों पहले कॉन्फ़िगरेशन को मान्य करते हैं:

terminal
$ sudo imaxe ssh reload
$ sudo imaxe ssh restart
यदि कॉन्फ़िगरेशन अमान्य है, तो ऑपरेशन इसे लागू करने से पहले रुक जाता है — आपकी पहुँच बरकरार रहती है।
खुद को बाहर न करने का ध्यान रखें

sshd को पुनरारंभ करने या पोर्ट बदलने से पहले, एक दूसरा आपातकालीन सत्र खुला रखें। यदि, पुनर्कनेक्ट करते समय, आपको किसी hostkeys regenerate के बाद एक भिन्न host key चेतावनी मिलती है, तो यह अपेक्षित है: नई पहचान स्वीकार करें।

CLI संदर्भआदेश, फ़्लैग और फ़ाइलें

सारांश #

उपयोग
imaxe ssh <subcomando> [<subcomando-anidado>] [argumentos] [flags]

sshd, अधिकृत कुंजियों या host कुंजियों को पढ़ने या संशोधित करने वाले ऑपरेशन के लिए root विशेषाधिकार आवश्यक हैं (sudo का उपयोग करें)। keys, hostkeys और harden समूह अपने-अपने नेस्टेड उपआदेश एकत्र करते हैं। स्क्रिप्टिंग के लिए उपयुक्त आउटपुट के लिए status, sessions, keys list या harden show में --json जोड़ें।

उपआदेश #

उपआदेशयह क्या करता हैप्रासंगिक फ़्लैग
statussshd की स्थिति: सक्रिय, पोर्ट और हार्डनिंग सारांश।--json
keys listप्रबंधित उपयोगकर्ता की अधिकृत कुंजियाँ सूचीबद्ध करता है।--user, --json
keys addएक सार्वजनिक कुंजी जोड़ता है (आर्गुमेंट या stdin से)।--user, --comment
keys removefingerprint या टिप्पणी से एक कुंजी हटाता है।--user
hostkeys regeneratehost कुंजियाँ पुनर्जनित करता है (AMI क्लोन करने के बाद महत्वपूर्ण; fingerprint बदलता है)।--yes
sessionsसक्रिय SSH सत्रों को सूचीबद्ध करता है।--json
harden showवर्तमान हार्डनिंग को वांछित के विरुद्ध दिखाता है।--json
harden reapplyYAML से हार्डनिंग पुनः लागू करता है और sshd पुनः लोड करता है।
restartsshd पुनरारंभ करता है, पहले कॉन्फ़िगरेशन मान्य करते हुए (sshd -t)।
reloadsshd पुनः लोड करता है, पहले कॉन्फ़िगरेशन मान्य करते हुए (sshd -t)।

आर्गुमेंट और फ़्लैग #

आर्गुमेंट / फ़्लैगप्रकारडिफ़ॉल्टविवरण
<clave> आव.stringkeys add में: सार्वजनिक कुंजी, या इसे stdin से पढ़ने के लिए -
<selector> आव.stringkeys remove में: हटाने के लिए कुंजी का fingerprint (SHA256:...) या टिप्पणी।
--userstringubuntuवह उपयोगकर्ता जिसकी authorized_keys की क्वेरी या संशोधन किया जाता है (keys list/add/remove में)।
--commentstringkeys add में: कुंजी से जुड़ी टिप्पणी ताकि इसे बाद में पहचाना जा सके।
--yesboolfalsehostkeys regenerate में: बिना पूछे पुष्टि करता है (क्लाइंट द्वारा देखा जाने वाला fingerprint बदलता है)।
--jsonboolfalsestatus, sessions, keys list और harden show में: परिणाम को stdout पर JSON के रूप में निकालता है।

फ़ाइलें और पथ #

पथसामग्री
/etc/imaxe/ssh.ymlमॉड्यूल कॉन्फ़िगरेशन: पोर्ट, लॉगिन नीतियाँ (root, पासवर्ड, सार्वजनिक कुंजी), अनुमत उपयोगकर्ता, प्रबंधित उपयोगकर्ता और host कुंजी पुनर्जनन।
/home/<usuario>/.ssh/authorized_keysप्रबंधित उपयोगकर्ता की अधिकृत सार्वजनिक कुंजियाँ जिन्हें keys add/remove संशोधित करते हैं।
/etc/ssh/sshd_config.d/sshd कॉन्फ़िगरेशन के खंड जहाँ हार्डनिंग लागू होती है।
/etc/ssh/ssh_host_*_keyhost कुंजियाँ जो सर्वर की पहचान बताती हैं और जिन्हें hostkeys regenerate नवीनीकृत करता है।

ssh.yml का उदाहरण:

/etc/imaxe/ssh.yml
port: 22
permit_root_login: "no"
password_authentication: "no"
pubkey_authentication: "yes"
allow_users: []
managed_user: ubuntu
hostkeys:
  regenerate_on_first_boot: true

निकास कोड और लॉग #

हर बार चलने पर एक कोड लौटाया जाता है जिसे आप echo $? से जाँच सकते हैं — स्क्रिप्ट में श्रृंखलाबद्ध करने के लिए उपयोगी:

0OKऑपरेशन सफलतापूर्वक पूरा हुआ।
1ERRसामान्य अवर्गीकृत त्रुटि। लॉग की जाँच करें।
2USAGEअमान्य या अनुपस्थित आर्गुमेंट।
3CONFIGsshd -t मान्यकरण विफल रहा; कुछ भी लागू नहीं किया गया।
4NOTFOUNDकुंजी या उपयोगकर्ता नहीं मिला।
5RELOADबदलाव लागू हुआ पर sshd पुनः लोड विफल रहा।

डिबग करते समय सेवा लॉग को लाइव देखें:

terminal
$ sudo journalctl -u ssh -f
$ sudo imaxe ssh harden show --json

समस्या निवारण #

लक्षणसंभावित कारणसमाधान
CONFIG (कोड 3) लौटाता हैहार्डनिंग या किसी मैनुअल बदलाव ने sshd को अमान्य कॉन्फ़िगरेशन के साथ छोड़ दिया।imaxe ssh harden show से diff की समीक्षा करें और इसे ठीक करें; मान्यकरण किसी टूटी कॉन्फ़िग को लागू होने से रोकता है।
पुनर्कनेक्ट करते समय, एक भिन्न host key चेतावनीhost कुंजियाँ पुनर्जनित की गईं (AMI क्लोन करने के बाद अपेक्षित)।यह सामान्य है: क्लाइंट पर नई पहचान स्वीकार करें और अपनी known_hosts अद्यतन करें।
keys add NOTFOUND (कोड 4) लौटाता है--user में दिया गया उपयोगकर्ता सिस्टम पर मौजूद नहीं है।उपयोगकर्ता नाम जाँचें या डिफ़ॉल्ट प्रबंधित वाला (ubuntu) उपयोग करें।
मैं अब पासवर्ड से लॉग इन नहीं कर सकताहार्डनिंग द्वारा password_authentication को "no" पर सेट किया गया है।यह जानबूझकर है: सार्वजनिक कुंजी से लॉग इन करें और उन्हें imaxe ssh keys से प्रबंधित करें।

SSH मॉड्यूल में अटक गए?

हमें «imaxe <module> status --json» का आउटपुट भेजें और हम आपको जल्दी जवाब देंगे।

सहायता से संपर्क करें