एक बॉक्स में खोल - वेब ब्राउज़र के माध्यम से लिनक्स एसएसएच टर्मिनल तक पहुंचें


शेल इन ए बॉक्स (शेलिनाबॉक्स के रूप में उच्चारित) मार्कस गुटश्के द्वारा बनाया गया एक वेब-आधारित टर्मिनल इम्यूलेटर है। इसमें एक अंतर्निहित वेब सर्वर है जो एक निर्दिष्ट पोर्ट पर वेब-आधारित SSH क्लाइंट के रूप में चलता है और आपको किसी भी AJAX/JavaScript और CSS- का उपयोग करके अपने Linux सर्वर SSH शेल को दूरस्थ रूप से एक्सेस और नियंत्रित करने के लिए एक वेब टर्मिनल एमुलेटर के लिए संकेत देता है। FireSSH जैसे किसी भी अतिरिक्त ब्राउज़र प्लग इन की आवश्यकता के बिना सक्षम ब्राउज़र।

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

लिनक्स सिस्टम पर शेलिनाबॉक्स स्थापित करना

डिफ़ॉल्ट रूप से, शेलिनबॉक्स टूल को डेबियन-आधारित लिनक्स वितरण पर डिफ़ॉल्ट रिपॉजिटरी के माध्यम से डिफ़ॉल्ट पैकेज मैनेजर का उपयोग करके दिखाया गया है।

$ sudo apt install openssl shellinabox

Red Hat-आधारित वितरण पर, आपको निम्न कमांड का उपयोग करके इसे स्रोत से स्थापित करने की आवश्यकता है।

# yum install git openssl-devel pam-devel zlib-devel autoconf automake libtool
# git clone https://github.com/shellinabox/shellinabox.git && cd shellinabox
# autoreconf -i
# ./configure && make

लिनक्स सिस्टम में शेलिनबॉक्स को कॉन्फ़िगर करना

डिफ़ॉल्ट रूप से, शेलिनबॉक्सड लोकलहोस्ट पर टीसीपी पोर्ट 4200 पर सुनता है। सुरक्षा कारणों से, मैं इस डिफ़ॉल्ट पोर्ट को एक यादृच्छिक (अर्थात 6175) में बदल देता हूं ताकि किसी के लिए भी आपके SSH बॉक्स तक पहुंचना मुश्किल हो जाए।

इसके अलावा, स्थापना के दौरान, HTTPS प्रोटोकॉल का उपयोग करने के लिए /var/lib/shellinabox के तहत एक नया स्व-हस्ताक्षरित एसएसएल प्रमाणपत्र स्वचालित रूप से बनाया जाता है।

$ sudo vi /etc/default/shellinabox
OR 
$ sudo nano /etc/default/shellinabox

नीचे दिखाए अनुसार कॉन्फ़िगरेशन परिवर्तन करें…

# Should shellinaboxd start automatically
SHELLINABOX_DAEMON_START=1

# TCP port that shellinboxd's webserver listens on
SHELLINABOX_PORT=6175

# Parameters that are managed by the system and usually should not need
# changing:
# SHELLINABOX_DATADIR=/var/lib/shellinabox
# SHELLINABOX_USER=shellinabox
# SHELLINABOX_GROUP=shellinabox

# Any optional arguments (e.g. extra service definitions).  Make sure
# that that argument is quoted.
#
#   Beeps are disabled because of reports of the VLC plugin crashing
#   Firefox on Linux/x86_64.
SHELLINABOX_ARGS="--no-beep"

# specify the IP address of an SSH server
OPTS="-s /:SSH:192.168.0.140"

# if you want to restrict access to shellinaboxd from localhost only
OPTS="-s /:SSH:192.168.0.140 --localhost-only"

एक बार जब आप कॉन्फ़िगरेशन के साथ कर लेते हैं, तो आप निम्नलिखित कमांड जारी करके शेलिनबॉक्स सेवा को पुनः आरंभ और सत्यापित कर सकते हैं।

$ sudo systemctl restart shellinabox
$ sudo systemctl status shellinabox

अब यह सत्यापित करते हैं कि Shellinabox netstat कमांड का उपयोग करके पोर्ट 6175 पर चल रहा है या नहीं।

$ sudo netstat -nap | grep shellinabox

सुनिश्चित करें कि आपने अपने शेलिनबॉक्स को फ़ायरवॉल पर सुरक्षित कर लिया है और अपने लिनक्स शेल को दूरस्थ रूप से एक्सेस करने के लिए एक विशिष्ट आईपी पते के लिए 6175 पोर्ट खोलें।

------- On Debian, Ubuntu and Mint -------
$ sudo ufw allow 6175/tcp
$ sudo ufw allow from 192.168.0.103 to any port 6175   

------- On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux -------
$ sudo firewall-cmd --zone=public --add-port=6175/tcp  
$ sudo firewall-cmd --zone=public --add-source=192.168.0.103/6175 --permanent

वेब ब्राउज़र के माध्यम से Linux SSH टर्मिनल तक पहुँचें

अब अपना वेब ब्राउज़र खोलें, और https://Your-IP-Adress:6175 पर नेविगेट करें। आपको वेब-आधारित SSH टर्मिनल देखने में सक्षम होना चाहिए। अपने उपयोगकर्ता नाम और पासवर्ड का उपयोग करके लॉग इन करें और आपको अपने शेल प्रांप्ट के साथ प्रस्तुत किया जाना चाहिए।

आप अपने शेल के रूप और अनुभव को बदलने सहित कई सुविधाओं और कार्यों का उपयोग करने के लिए राइट-क्लिक कर सकते हैं।

अधिक जानकारी के लिए, आधिकारिक शेलिनबॉक्स जीथब पृष्ठ पर जाएँ।