SSH से दूरस्थ VPN संपादक: आप कौन-सी मशीन संपादित कर रहे हैं?
X11 फ़ॉरवर्डिंग आपके लैपटॉप पर दूरस्थ संपादक दिखाती है, लेकिन प्रोफ़ाइल और रूट दूरस्थ होस्ट पर ही रहते हैं। सहेजने से पहले होस्ट, UUID और रोलबैक जाँचें।
X11 फ़ॉरवर्डिंग संपादक की खिड़की आपके लैपटॉप पर रखती है जबकि प्रक्रिया दूरस्थ होस्ट पर चलती रहती है। यही अंतर पूरा जाल है: आप स्थानीय खिड़की देख रहे हैं और दूरस्थ प्रोफ़ाइल संपादित कर रहे हैं, और यह गलत अनुमान कि बदलाव किस मशीन का है, उस SSH लिंक को काट सकता है जिस पर आप काम कर रहे हैं। नीचे दी गई चेकलिस्ट कुछ भी सहेजने से पहले होस्ट और प्रोफ़ाइल तय करती है। हर चरण में रुकने की शर्त है, इसलिए जल्दी विफलता सस्ती है।
चरण 1: उस मशीन का नाम बताएँ जिसके पास प्रोफ़ाइल है
जिस शेल को आप कॉन्फ़िगर करने जा रहे हैं उसमें पहचान के आदेश चलाएँ, और प्रॉम्प्ट से अनुमान लगाने के बजाय उत्तर पढ़ें। प्रॉम्प्ट में दिखने वाला होस्टनाम एक स्ट्रिंग है जो आपके शेल ने छापी है; कर्नेल का होस्टनाम वह है जिस पर इस चेकलिस्ट का बाकी हिस्सा भरोसा करता है। यदि दोनों मेल नहीं खाते, तो आप गलत मशीन पर हैं या प्रॉम्प्ट को आपके स्थानीय शेल ने सजाया है। रुकें और आगे बढ़ने से पहले इच्छित होस्ट से फिर जुड़ें।
hostnamectl
hostname -f
ip -brief address
अगला सवाल यह है कि क्या इस मशीन को VPN रखना चाहिए ही। लैपटॉप का क्लाइंट कॉन्फ़िगर करना और दूरस्थ होस्ट का क्लाइंट कॉन्फ़िगर करना अलग रूट, अलग DNS और अलग विफलता-तरीके पैदा करते हैं। प्रोफ़ाइल छूने से पहले तय करें कि आपका मतलब कौन-सा है, और निर्णय वहाँ लिखें जहाँ अगला व्यक्ति उसे पाए।
चरण 2: प्रोफ़ाइल UUID से पढ़ें, लेबल से नहीं
NetworkManager कनेक्शन को UUID से पहचानता है, जबकि नाम एक लेबल है जिसे कोई भी संपादित या दोहरा सकता है। दोनों सूचीबद्ध करें और वही प्रविष्टि मिलाएँ जो आप वास्तव में चाहते हैं, ख़ासकर ऐसे होस्ट पर जहाँ वर्षों में कई VPN प्रोफ़ाइल आयात हुए हैं।
nmcli -f NAME,UUID,TYPE connection show
nmcli connection show --active
nmcli general permissions
सहेजी गई प्रविष्टियाँ और सक्रिय कनेक्शन अलग सवालों के जवाब देते हैं: पहली सूची बताती है क्या मौजूद है, दूसरी बताती है अभी क्या ट्रैफ़िक ढो रहा है। अनुमति पंक्ति आपके सत्र की स्थानीय नीति बताती है और इस बारे में कुछ नहीं कहती कि VPN गेटवे खाता स्वीकार करेगा या नहीं। यदि आपको ज़रूरी प्रोफ़ाइल सहेजी सूची में नहीं है, तो यहीं रुकें, क्योंकि गलत प्रविष्टि संपादित करना बिलकुल न संपादित करने से बुरा है।
UUID मिलने के बाद उसे एक वेरिएबल में रखें और हर बाद के आदेश में वही वेरिएबल इस्तेमाल करें। इससे कॉपी-पेस्ट ग़लतियों की एक श्रेणी हट जाती है और ट्रांसक्रिप्ट पुनरुत्पादनीय हो जाता है।
UUID=$(nmcli -g UUID connection show 'Corp VPN')
nmcli connection edit uuid "$UUID"
चरण 3: तय करें कि ग्राफ़िकल संपादक सही औज़ार है या नहीं
जिस संपादक को polkit प्रॉम्प्ट या सीक्रेट एजेंट चाहिए, उसे महज़ इसलिए नहीं मिलेगा कि उसकी खिड़की आपके लैपटॉप पर दिखती है। वे घटक दूरस्थ सत्र के संदर्भ में चलते हैं, और डिस्प्ले फ़ॉरवर्ड करने से वे फ़ॉरवर्ड नहीं होते। यदि संपादक प्राधिकरण या सीक्रेट त्रुटि के साथ सहेज नहीं पाता, तो समस्या डिस्प्ले में नहीं है।
echo "$DISPLAY"
ssh -X you@vpn-host
xauth list
OpenSSH X11 फ़ॉरवर्डिंग सक्षम करता है -X से और उसके साथ आने वाली सावधानी का दस्तावेज़ीकरण करता है: दूरस्थ होस्ट आपके स्थानीय डिस्प्ले तक पहुँच सकता है, जो एक वास्तविक भरोसा-सीमा है। भरोसेमंद फ़ॉरवर्डिंग -Y से उनमें से कुछ जाँचें हटा देता है और डिफ़ॉल्ट के तहत विफल होने वाले ऐप के लिए कभी भी प्रतिक्रियात्मक समाधान नहीं होना चाहिए। यदि आपका संगठन दूरस्थ प्रशासन की कोई विधि प्रकाशित करता है, तो नया प्रकार गढ़ने के बजाय उसी का उपयोग करें। ज़्यादातर मामलों में कमांड-लाइन संपादक छोटी सतह और बेहतर उत्तर है।
यहीं रुकें यदि एकमात्र काम करने वाले रास्ते को -Y ज़रूरत है और आप बता नहीं सकते कि क्यों। यह सुरक्षा नीति के मालिक का निर्णय है, व्यक्तिगत स्क्रिप्ट में रखने का कोई बचाव नहीं।
चरण 4: कुछ भी सक्रिय करने से पहले पुनर्प्राप्ति का रास्ता रखें
VPN बदलाव उस रूट को हटा सकता है जिस पर आपका SSH सत्र निर्भर है, इसलिए प्रोफ़ाइल सक्रिय करने से पहले वापसी का रास्ता तैयार करें। कंसोल पहुँच, आउट-ऑफ़-बैंड प्रबंधन पता या निर्धारित रोलबैक—सब गिने जाते हैं; बदलाव काम करेगा इसकी उम्मीद नहीं गिनी जाती।
sudo systemctl status NetworkManager
ip route show default
ss -tn state established '( sport = :22 )'
केवल इच्छित प्रोफ़ाइल सक्रिय करें, फिर दूरस्थ होस्ट से सत्यापित करें: डिफ़ॉल्ट रूट, SSH वापसी पथ और एक संसाधन जो टनल से पहुँच योग्य होना चाहिए। आपके लैपटॉप से सफल जाँच लैपटॉप का रास्ता जाँचती है और दूरस्थ होस्ट के बारे में कुछ नहीं बताती। यदि सत्र गिर जाए, तो अंधाधुंध फिर जुड़ने के बजाय पुनर्प्राप्ति का रास्ता इस्तेमाल करें। प्रोफ़ाइल सहेजना सक्रिय करना नहीं है, और सक्रिय करना सत्यापन नहीं है.
UUID, बदले गए प्रॉपर्टी मान और उन्हें सत्यापित करने के लिए इस्तेमाल किए गए आदेश लिख लें। इस होस्ट को छूने वाले अगले व्यक्ति को तीनों चाहिए होंगे, और यह कहने वाले सारांश से ट्रांसक्रिप्ट ज़्यादा मूल्यवान है कि VPN ठीक हो गया। रोलबैक नोट के बिना खत्म होने वाली चेकलिस्ट आधी चेकलिस्ट है।