
SSH सख्तीकरण
Debian/Ubuntu पर SSH को एक बार में लॉक डाउन करें: नया पोर्ट, कोई रूट लॉगिन नहीं, की-आधारित प्रमाणीकरण, वैकल्पिक UFW और Fail2Ban।
जब आप स्क्रिप्ट चलाते हैं, तो यह आपके OS का पता लगाता है और जारी रखने से पहले सेटिंग्स दिखाता है:

Debian/Ubuntu पर:
sudo apt-get install -y git
rm -rf ssh-hardening
git clone https://github.com/spookey007/ssh-hardening.git
cd ssh-hardening
जब भी आप नवीनतम स्क्रिप्ट चाहें, इसे चलाएँ।
chmod +x ssh_harden.sh script.sh
यदि आप इसे छोड़ देते हैं, तो ./ssh_harden.sh चलाने पर आपको "command not found" मिल सकता है। यदि ऐसा होता है, तो इसके बजाय sudo bash ssh_harden.sh के साथ चरण 5 का उपयोग करें।
SSH_PUB_KEY के रूप में पेस्ट करने के लिए)Linux / macOS
ssh-keygen -t ed25519 -C "[email protected]"
डिफ़ॉल्ट पथ (~/.ssh/id_ed25519) के लिए Enter दबाएँ। वैकल्पिक: एक पासफ़्रेज़ सेट करें।
अपनी सार्वजनिक कुंजी दिखाएं (इसे SSH_PUB_KEY में कॉपी करें):
cat ~/.ssh/id_ed25519.pub
Windows (PowerShell या Git Bash)
ssh-keygen -t ed25519 -C "[email protected]"
डिफ़ॉल्ट पथ के लिए Enter दबाएँ। वैकल्पिक: एक पासफ़्रेज़ सेट करें।
अपनी सार्वजनिक कुंजी दिखाएं:
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pubtype %USERPROFILE%\.ssh\id_ed25519.pubपूरी पंक्ति कॉपी करें (ssh-ed25519 ... से शुरू होती है)। यह आपका SSH_PUB_KEY है।
अपने मानों से बदलें, फिर चलाएं:
sudo SSH_USER=kamaileo \
SSH_PASS='YourStrongPassword123!' \
SSH_PORT=49221 \
PORTS="5060,5061,10000-20000" \
SSH_PUB_KEY="ssh-ed25519 AAAA... you@yourmachine" \
./ssh_harden.sh
यदि आपको "command not found" मिलता है, तो उपयोग करें:
sudo bash ssh_harden.sh
(सामने समान SSH_USER=... SSH_PASS=... आदि के साथ)।
एक नए टर्मिनल में, नए पोर्ट (22 नहीं) का उपयोग करके कनेक्ट करें:
ssh -p 49221 kamaileo@YOUR_SERVER_IP
आपके द्वारा सेट किए गए पोर्ट और उपयोगकर्ता का उपयोग करें। लॉगिन और sudo काम करने की पुष्टि करने के बाद ही मूल सत्र बंद करें।
हर बार नए पोर्ट का उपयोग करें। हार्डनिंग के बाद, SSH पोर्ट 22 पर नहीं रहता है। हमेशा इसके साथ कनेक्ट करें:
ssh -p <YOUR_PORT> <USER>@<SERVER_IP>
उदाहरण: ssh -p 49221 [email protected]
स्क्रिप्ट के समाप्त होने पर उसके आउटपुट को सहेजें। अंत में स्क्रिप्ट आपके उपयोगकर्ता, पोर्ट, कनेक्ट कमांड और पासवर्ड सेट किया गया था या नहीं, इसका सारांश प्रिंट करती है। उस ब्लॉक को कॉपी या स्क्रीनशॉट लें और इसे सुरक्षित स्थान पर रखें। यदि आप अपनी SSH कुंजी खो देते हैं, पोर्ट भूल जाते हैं, या पासवर्ड भूल जाते हैं, तो वह रिकॉर्ड आपको पुनर्प्राप्त करने या पुनः कनेक्ट करने में मदद करेगा (जैसे, समान उपयोगकर्ता और पासवर्ड का उपयोग करके कंसोल/VNC के माध्यम से)।
स्क्रिप्ट आपकी ज़रूरत की सभी चीज़ें आउटपुट करती है: उपयोगकर्ता, पोर्ट, UFW/Fail2Ban स्थिति, और सटीक ssh -p ... कमांड। कोई अनुमान नहीं।
यदि SSH_USER पहले से सर्वर पर है, तो स्क्रिप्ट नया उपयोगकर्ता नहीं बनाती और पासवर्ड नहीं बदलती। यह केवल:
sudo समूह में हैSSH_PUB_KEY पास करते हैं तो ~/.ssh/authorized_keys अपडेट करती हैतो आप मौजूदा पासवर्ड को छुए बिना इसे फिर से "केवल हार्डन" करने के लिए चला सकते हैं।
| चर | उदाहरण | यह क्या करता है |
|---|---|---|
SSH_USER | kamaileo | उपयोगकर्ता नाम (यदि गायब है तो बनाया जाता है; यदि मौजूद है, तो पासवर्ड अपरिवर्तित छोड़ दिया जाता है)। |
SSH_PASS | 'YourPass123!' | केवल नए उपयोगकर्ताओं के लिए पासवर्ड। एक मजबूत पासवर्ड का उपयोग करें। |
SSH_PORT | 49221 | SSH पोर्ट। आप इसका उपयोग करेंगे: ssh -p 49221 user@server। |
PORTS | "5060,5061,10000-20000" | UFW के लिए अतिरिक्त पोर्ट (वैकल्पिक)। |
SSH_PUB_KEY | "ssh-ed25519 AAAA..." | आपकी सार्वजनिक कुंजी। दृढ़ता से अनुशंसित है ताकि आप बाहर न निकल जाएँ। |
| OS | समर्थित | परीक्षण किया गया | Git इंस्टॉल |
|---|---|---|---|
| Debian 12 x64 | ✅ | ✅ | sudo apt-get install -y git |
| Debian 11/10, Ubuntu 24/22/20 | ✅ | ❌ | sudo apt-get install -y git |
| RHEL / Rocky / Alma / CentOS | ❌ | ❌ | sudo yum install -y git |
| Fedora | ❌ | ❌ | sudo dnf install -y git |
| Arch | ❌ | ❌ | sudo pacman -Syu git |
| openSUSE | ❌ | ❌ | sudo zypper install -y git |
असमर्थित OS पर स्क्रिप्ट Coming soon 😊 प्रिंट करती है और कुछ भी बदले बिना बाहर निकल जाती है।
SSH_PUB_KEY सेट करें ताकि पासवर्ड प्रमाणीकरण अक्षम होने के बाद भी आप लॉग इन कर सकें।ssh -p PORT user@server का परीक्षण नहीं कर लेते।यदि इस स्क्रिप्ट ने आपका समय या सिरदर्द बचाया है, तो आप एक बार की टिप के साथ परियोजना का समर्थन कर सकते हैं।
BTC: 3L1Gc4avD4Bqoi2F9aq6z4heT13fXA8DZ9
फिर भी धन्यवाद।