निजी कुंजी यहाँ, सार्वजनिक कुंजी वहाँ: WireGuard की कुंजियाँ
आपकी निजी कुंजी आपके डिवाइस पर ही रहती है; पीयर प्रविष्टि दूसरी ओर की सार्वजनिक कुंजी रखती है। केवल सार्वजनिक आधा हिस्सा साझा करें, और हर डिवाइस को अपनी अलग पहचान दें।
हाथ से बने WireGuard की अधिकांश विफलताएँ इसी पर आकर टिकती हैं कि कौन-सी कुंजी कहाँ गई। इंटरफ़ेस अनुभाग में उस डिवाइस की निजी कुंजी होती है जिसे आप कॉन्फ़िगर कर रहे हैं, जबकि पीयर अनुभाग में दूसरे सिरे की मशीन की सार्वजनिक कुंजी होती है। इन आधे हिस्सों को बदल देना, या गलत वाला चिपका देना, ऐसा हैंडशेक बनाता है जो कभी पूरा नहीं होता और ऐसा लॉग बनाता है जो कभी किसी कुंजी का नाम नहीं लेता। AllowedIPs या DNS छूने से पहले नीचे दिए चार जाँच क्रम में करें।
दो कुंजियाँ, दो दिशाएँ
एक निजी कुंजी ठीक एक डिवाइस की होती है और उसी डिवाइस के इंटरफ़ेस अनुभाग में रहती है। उसका सार्वजनिक आधा हिस्सा वही है जो हर दूसरे पीयर को डिवाइस पहचानने के लिए चाहिए, और औज़ार इसे गढ़ते नहीं, व्युत्पन्न करते हैं। सर्वर पर आपके डिवाइस की सार्वजनिक कुंजी पीयर प्रविष्टि के रूप में दिखती है; आपके डिवाइस पर सर्वर की सार्वजनिक कुंजी वह भूमिका निभाती है। इन शब्दों में कॉन्फ़िग को ज़ोर से पढ़ना अधिकांश उलझनें हैंडशेक तक पहुँचने से पहले पकड़ लेता है।
wg कमांड छापती है कि स्थानीय इंटरफ़ेस वास्तव में क्या उपयोग कर रहा है, दोनों सार्वजनिक कुंजियों सहित। इससे कॉन्फ़िगरेशन की गलती को कनेक्टिविटी की समस्या से अलग करने का सबसे तेज़ तरीका यही बन जाता है:
wg show
wg show interfaces
पहला आउटपुट हर पीयर को उसकी सार्वजनिक कुंजी, अंतिम बार उपयोग किए गए एंडपॉइंट और उसके पिछले हैंडशेक की आयु के साथ सूचीबद्ध करता है। एक ओर हैंडशेक की आयु «कभी नहीं» और दूसरी ओर हाल की होना ऐसी कुंजी की ओर संकेत करता है जिसे केवल एक सिरे ने स्वीकार किया। दूसरा कमांड उन इंटरफ़ेस के नाम बताता है जिन्हें आप आगे जाँच सकते हैं।
क्या साझा करें और क्या कभी नहीं
सार्वजनिक कुंजी सौंपने के लिए होती है, हालाँकि वह अब भी डिवाइस संबंध पहचानती है, इसलिए उसे माँगने वाले प्रशासक को भेजना और उसे प्रकाशित करना एक जैसा नहीं है। निजी कुंजी कभी उस डिवाइस को नहीं छोड़ती जिसने उसे बनाया। निर्यात किया गया प्रोफ़ाइल या QR कोड उस निजी कुंजी सहित पूरा कॉन्फ़िगरेशन रखता है, इसलिए दोनों में से कोई भी हाथों-हाथ देने के लिए सुरक्षित नहीं है, और किसी चित्र के भीतर पाठ छिपाने से कुछ नहीं बदलता। पहले से साझा की गई कुंजियाँ वैकल्पिक और उतनी ही गोपनीय हैं, और दोनों सिरों पर समान मान होना चाहिए, वरना हैंडशेक उसी चरण पर रुक जाता है।
एक और अंतर सीधे कहना उचित है: एंडपॉइंट एक पता और एक पोर्ट है, कभी कुंजी नहीं। एंडपॉइंट फ़ील्ड में सार्वजनिक कुंजी चिपकाना, या कुंजी फ़ील्ड में पता, ऐसा प्रोफ़ाइल बनाता है जो पार्स होता है और फिर कुछ नहीं करता। औज़ार इसे नहीं पकड़ेंगे, क्योंकि दोनों फ़ील्ड केवल स्ट्रिंग हैं। WireGuard की तेज़ शुरुआत एक पंक्ति में बनाने और व्युत्पन्न करने की श्रृंखला दिखाती है।
एक डिवाइस, एक पीयर प्रविष्टि
जहाँ सेवा अनुमति देती है, वहाँ हर डिवाइस को अपनी पीयर पहचान रखनी चाहिए। लैपटॉप का पूरा प्रोफ़ाइल फ़ोन पर चिपकाने से यह धुँधला हो जाता है कि सर्वर पर वह पहचान किस डिवाइस के पास है और एक खोए हैंडसेट को रद्द करना कठिन हो जाता है। अगर निजी कुंजी लीक हो जाए, तो सर्वर पर पुराना पीयर प्राधिकरण हटाएँ और उसका प्रतिस्थापन जुटाएँ। स्थानीय फ़ाइल मिटाने से सर्वर की प्रविष्टि नहीं मिटती, और नई क्लाइंट कुंजी किसी की मदद नहीं करती जब तक सर्वर उसका सार्वजनिक आधा न जानता हो।
डिवाइस से सार्वजनिक कुंजी तक का नक्शा पतों की सूची के पास रखें। वही सूची रद्द करने को पूरी दोपहर के बजाय दो मिनट का काम बनाती है।
हैंडशेक के बाद भी क्या विफल होता है
कुंजी युग्म पीयर की पहचान करते हैं; वे नेटवर्क के व्यवहार का फ़ैसला नहीं करते। AllowedIPs पता श्रेणियों को एक पीयर से जोड़ता है, और उसके आसपास के रूट क्लाइंट या सेटअप औज़ार संभालता है। लक्षण आमतौर पर बताता है कि आगे कौन-सी परत खोलनी है:
| What you see | Which key problem it usually means | Where to look first |
|---|---|---|
| Handshake age stays at never on both ends | Peer public key missing, or an endpoint pointing at nothing | wg show, then the endpoint value |
| Handshake completes on one side only | The two ends hold different public keys for each other | wg show on both hosts |
| Handshake works, then no traffic | AllowedIPs or routes rather than keys | wg show and the route table |
| Worked until a key was regenerated | The peer entry still holds the old public key | Compare both public keys, then update the peer |
दोनों पीयर के ठीक से प्रमाणित होने के बाद भी DNS विफल हो सकता है, और सुरंग के स्वयं स्वस्थ रहते हुए भी कोई एप्लिकेशन विफल हो सकता है, इसलिए काम करता हैंडशेक निदान का अंत नहीं है। कुंजियाँ ऑपरेटर की लॉगिंग प्रथा के बारे में या यह कि कोई वेबसाइट आपका खाता पहचानती है या नहीं, इस बारे में भी कुछ नहीं कहतीं, और वे प्रश्न कहीं और के हैं। चारों जाँच पार होने पर नेटवर्क परतों की ओर बढ़ें, क्योंकि गायब कुंजी कोई छिपी हुई रूटिंग समस्या नहीं है।