WireGuard বলছে প্রাইভেট কীয়ের দৈর্ঘ্য ভুল: এখন কী করব?
base64-এ 32 বাইটের কী 44 অক্ষরের। কিছু নতুন করে তৈরির আগে ঠিক করুন আপনার লেখা নষ্ট নাকি পরিচয় ভুল।
বার্তাটি বলছে প্রাইভেট কীয়ের দৈর্ঘ্য ভুল, এবং ওই শব্দবিন্যাস আগে এনকোডিংয়ের দিকে আর পরে ক্রিপ্টোগ্রাফির দিকে ইঙ্গিত করে। 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
আকার যাচাই বলে উপাদানের কী-আকৃতি আছে কি না, এবং পথের প্রশ্ন বলে কোনো প্যাকেট কখনও ইন্টারফেসে পৌঁছাবে কি না। দুই যাচাই পাস করার পরেও খালি থাকা হ্যান্ডশেক লাইন রোগনির্ণয়কে সহকর্মীর প্রান্তবিন্দু ও অনুমোদিত ঠিকানার দিকে সরায়। ইন্টারফেসের সার্বজনীন কী প্রভিশনিং রেকর্ডের সামনে শেষবার পড়ুন, কারণ সংরক্ষিত পুরনো প্রোফাইল সঠিক দেখাতে পারে, অথচ সক্রিয়টি আলাদা হতে পারে]।
আপনি কোন মান বদলেছেন এবং অনুমোদিত অনুলিপি কোথায় আছে তা লিখে রাখুন। পরেরবার এই সহকর্মীকে স্পর্শ করবে যে, তাকে জানতে হবে কোন প্রান্ত বদলেছে।