پیغام کہتا ہے کہ نجی کلید کی لمبائی غلط ہے، اور یہ الفاظ پہلے انکوڈنگ کی طرف اور پھر خفیہ نگاری کی طرف اشارہ کرتے ہیں۔ WireGuard کلیدیں 32 بائٹ کو base64 کے طور پر انکوڈ کرتی ہیں، جس سے آخری بھرائی سمیت 44 حروف ملتے ہیں، اس لیے کسی دوسرے حجم کی قدر کلید نہیں، چاہے وہ کتنی ہی بےترتیب دکھے۔ پارسر کے قبول کرنے تک سٹرنگ بھرنا ایسی خوشساخت قدر بناتا ہے جسے کوئی ساتھی کبھی نہیں پہچانے گا۔

اس خرابی کے پیچھے دو مختلف کام چھپے ہیں: کسی درست کلید کا متن ٹھیک کرنا، اور ایسی شناخت بدلنا جو اب آپ کے پاس نہیں۔ ان کے نتائج الگ ہیں، اور ان میں سے ایک دوسرے سرے کو باطل کر دیتا ہے۔

پارسر کیا توقع کرتا ہے

WireGuard کلید base64 میں معیاری بھرائی کے ساتھ 32 بائٹ کی کلیدی مواد ہے، جس سے 44 حروف کی مستقل سٹرنگ بنتی ہے۔ اوزار ہر اس چیز کو رد کرتے ہیں جو ٹھیک 32 بائٹ میں ڈی کوڈ نہ ہو، کیونکہ بنیادی منحنی خط 32 بائٹ کا اسکیلر لیتا ہے اور کچھ نہیں۔ عوامی اور نجی قدریں ایک ہی انکوڈنگ استعمال کرتی ہیں، اس لیے پارسر صرف فارمیٹ سے نہیں بتا سکتا کہ آپ نے کون سی چسپاں کی۔ یہی ابہام اس خرابی کے گرد آدھی الجھن پیدا کرتا ہے۔

wg genkey | tee private.key | wg pubkey > public.key
base64 -d private.key | wc -c
wc -c private.key
wg show wg0 public-key

اگر آپ کی قدر 32 بائٹ میں ڈی کوڈ ہوتی ہے تو لمبائی درست ہے اور شکایت فائل میں کسی اور جگہ سے آتی ہے۔ اگر یہ کسی چھوٹی چیز میں ڈی کوڈ ہوتی ہے تو آپ کے پاس کٹا ہوا مواد ہے، فارمیٹ کا مسئلہ نہیں۔

فارمیٹ کا نقصان یا غلط مواد؟

فارمیٹ کے نقصانات کناروں پر جمع ہوتے ہیں: شیل کے لگائے ہوئے حوالہ جاتی نشان، قدر کے ساتھ کاپی ہوا private_key جیسا لیبل، چیٹ کلائنٹ کا ڈالا ہوا سطر کا وقفہ، یا چسپاں کرنے سے بچی آخری جگہ۔ ان میں سے ہر ایک بائٹ بدلے بغیر سٹرنگ بدلتا ہے، اس لیے اسے ہٹانا اصل شناخت واپس لاتا ہے۔ پارسر کے خاموش ہونے تک رموز اوقاف ہٹانے کے بجائے فائل کا پروویژننگ ریکارڈ سے حرف بحرف موازنہ کریں۔

غلط مواد ایک اور صورت ہے۔ پاس ورڈ، سرٹیفکیٹ کلید یا عوامی قدر سب قابلِ اعتماد دکھ سکتے ہیں اور غلط حجم میں ڈی کوڈ ہو سکتے ہیں۔ کوئی صفائی ان میں سے کسی کو وہ اسکیلر نہیں بناتی جس کی ساتھی توقع کرتا ہے۔ اس معاملے میں ترمیم نہیں، نئی شناخت درکار ہے۔

نجی میدان میں عوامی کلید

سب سے عام الجھن یہ ہے کہ عوامی قدر نجی میدان میں چسپاں کی جائے، یا اس کے برعکس۔ دونوں 32 بائٹ کی درست base64 ہیں، اس لیے لمبائی کی جانچ پاس ہوتی ہے اور مصافحہ بعد میں مفید پیغام کے بغیر ناکام ہوتا ہے۔ نجی کلید وہ اسکیلر ہے جو عوامی کلید بناتی ہے، اس لیے آپ عوامی قدر نکال کر ساتھی کی اجازت کردہ قدر سے موازنہ کر کے یہ طے کر سکتے ہیں۔ جب نکالی گئی قدر ریکارڈ سے مطابقت نہ رکھے تو آپ کے پاس غلط شناخت ہے، ٹائپنگ کی غلطی نہیں۔

دوسرے سرے پر مجاز عوامی کلید کو اپ ڈیٹ کیے بغیر کلائنٹ کی نجی کلید بدلنے سے وہی عدم مطابقت دوبارہ بنتی ہے، ساتھ ہی یہ اضافی الجھن کہ کلائنٹ کی اپنی فائل اب خود سے ہم آہنگ دکھتی ہے۔ ایک ہی عمل میں دونوں سرے بدلیں، ورنہ اگلا شخص غلط نصف کو ڈیبگ کرے گا۔

پروفائل درست کریں، پھر مصافحہ ثابت کریں

جب کلید درست حجم میں ڈی کوڈ ہو جائے اور مجاز جوڑی سے مطابقت رکھے تو باقی کام پروفائل اور راستہ ہے۔ نیچے دیے گئے احکام ضرورت پڑنے پر نئی جوڑی بناتے ہیں، موجودہ کلید کا ڈی کوڈ شدہ حجم جانچتے ہیں اور وہ عوامی قدر پڑھتے ہیں جو انٹرفیس واقعی استعمال کرتا ہے۔ نجی قدر کبھی ٹکٹ یا ڈی کوڈ سائٹ میں نہ چسپاں کریں۔

wg genkey | tee new.key | wg pubkey > new.pub
base64 -d private.key | wc -c
ip route get 10.60.9.5
wg show wg0 latest-handshakes

حجم کی جانچ بتاتی ہے کہ مواد کلید کی شکل کا ہے یا نہیں، اور راستے کا سوال بتاتا ہے کہ کوئی پیکٹ کبھی انٹرفیس تک پہنچے گا یا نہیں۔ دونوں جانچیں پاس ہونے کے بعد بھی خالی رہنے والی مصافحہ سطر تشخیص کو ساتھی کے آخری مقام اور مجاز پتوں کی طرف لے جاتی ہے۔ انٹرفیس کی عوامی کلید پروویژننگ ریکارڈ کے سامنے آخری بار پڑھیں، کیونکہ محفوظ شدہ پرانا پروفائل درست دکھ سکتا ہے جبکہ فعال پروفائل مختلف ہو]۔

لکھیں کہ آپ نے کون سی قدر بدلی اور مجاز نقل کہاں ہے۔ اگلی بار اس ساتھی کو چھونے والے کو جاننا چاہیے کہ کون سا سرا بدلا۔

متعلقہ مضامین