SSH পাবলিক কী কী?

একটি SSH পাবলিক কী হলো একটি ক্রিপ্টোগ্রাফিক কী পেয়ারের অর্ধেক অংশ, যা SSH (Secure Shell) প্রোটোকলের মাধ্যমে নিরাপদ প্রমাণীকরণের জন্য ব্যবহৃত হয়। যখন আপনি একটি SSH কী পেয়ার তৈরি করেন, তখন আপনি একটি প্রাইভেট কী (আপনার মেশিনে গোপন রাখা হয়) এবং একটি পাবলিক কী (যে সার্ভারগুলোতে অ্যাক্সেস করতে চান সেগুলোর সাথে শেয়ার করা হয়) পান। সার্ভার আপনার পাবলিক কী ব্যবহার করে পাসওয়ার্ড প্রেরণ না করেই আপনার পরিচয় যাচাই করে।

SSH পাবলিক কীগুলো OpenSSH ফরম্যাটে টেক্সটের একটি একক লাইন হিসেবে সংরক্ষিত হয়, যাতে তিনটি অংশ থাকে: কী টাইপ (যেমন ssh-rsa বা ssh-ed25519), Base64-এনকোডেড কী ডেটা, এবং একটি ঐচ্ছিক মন্তব্য (সাধারণত user@hostname)। Base64 ডেটার ভেতরে অ্যালগরিদম প্যারামিটার এবং প্রকৃত ক্রিপ্টোগ্রাফিক উপাদান সহ কাঠামোগত বাইনারি তথ্য এমবেড করা থাকে।

ফিঙ্গারপ্রিন্ট হলো কী ডেটার সংক্ষিপ্ত, মানব-পাঠযোগ্য হ্যাশ। এগুলো সম্পূর্ণ Base64 string না পড়েই কীগুলো যাচাই ও তুলনা করা সহজ করে তোলে। দুটি সবচেয়ে সাধারণ ফিঙ্গারপ্রিন্ট ফরম্যাট হলো SHA-256 (আধুনিক ডিফল্ট) এবং MD5 (কোলন-বিভক্ত হেক্স পেয়ার সহ লিগেসি ফরম্যাট)।

টুলের বিবরণ

এই টুলটি OpenSSH ফরম্যাটে SSH পাবলিক কী পার্স করে এবং সমস্ত গুরুত্বপূর্ণ মেটাডেটা বের করে। আপনার পাবলিক কী পেস্ট করুন এবং তাৎক্ষণিকভাবে কী টাইপ, অ্যালগরিদম, বিটে কী সাইজ, মন্তব্য, এবং SHA-256 ও MD5 উভয় ফিঙ্গারপ্রিন্ট দেখুন — ssh-keygen -l থেকে যে আউটপুট পাবেন তার সাথে মিলে যাবে।

উদাহরণ

ইনপুট:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@laptop

আউটপুট:

ফিল্ড মান
কী টাইপ ssh-ed25519
অ্যালগরিদম Ed25519
কী সাইজ ২৫৬ বিট
মন্তব্য user@laptop
ফিঙ্গারপ্রিন্ট SHA-256 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8
ফিঙ্গারপ্রিন্ট MD5 MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48

বৈশিষ্ট্যসমূহ

  • RSA, Ed25519, ECDSA (P-256, P-384, P-521), DSA, এবং Security Key (FIDO) কী টাইপ সমর্থন করে
  • স্ট্যান্ডার্ড OpenSSH ফরম্যাটে SHA-256 এবং MD5 ফিঙ্গারপ্রিন্ট গণনা করে
  • বাইনারি কী ডেটা থেকে সরাসরি বিটে কী সাইজ বের করে
  • Base64 অখণ্ডতা এবং এমবেডেড টাইপ সামঞ্জস্যতা সহ কী কাঠামো যাচাই করে
  • পাবলিক কী লাইন থেকে ঐচ্ছিক মন্তব্য ফিল্ড পার্স করে

এটি কীভাবে কাজ করে

টুলটি ইনপুটকে তিনটি অংশে বিভক্ত করে: কী টাইপ, Base64 ডেটা, এবং মন্তব্য। এরপর এটি Base64 ডেটাকে বাইনারিতে ডিকোড করে এবং SSH-এর লেংথ-প্রিফিক্সড ফরম্যাট ব্যবহার করে অভ্যন্তরীণ কাঠামো পড়ে, যেখানে প্রতিটি ফিল্ড একটি ৪-বাইট বিগ-এন্ডিয়ান লেংথ দিয়ে শুরু হয় এবং তারপর ফিল্ড ডেটা থাকে। কী সাইজ অ্যালগরিদম-নির্দিষ্ট প্যারামিটার থেকে নির্ধারিত হয় — RSA-এর জন্য এটি মডুলাস n-এর বিট দৈর্ঘ্য, DSA-এর জন্য এটি প্রাইম p, এবং এলিপটিক কার্ভ কীগুলোর জন্য এটি কার্ভের নাম থেকে নেওয়া হয়। ফিঙ্গারপ্রিন্টগুলো SHA-256 এবং MD5 দিয়ে র‍্যা বাইনারি কী ডেটা হ্যাশ করে গণনা করা হয়।

সমর্থিত কী টাইপসমূহ

টাইপ আইডেন্টিফায়ার অ্যালগরিদম
ssh-rsa RSA
ssh-ed25519 Ed25519
ecdsa-sha2-nistp256 ECDSA (P-256)
ecdsa-sha2-nistp384 ECDSA (P-384)
ecdsa-sha2-nistp521 ECDSA (P-521)
ssh-dss DSA
sk-ssh-ed25519@openssh.com Ed25519-SK (Security Key)
sk-ecdsa-sha2-nistp256@openssh.com ECDSA-SK (Security Key)

ব্যবহারের ক্ষেত্রসমূহ

  • কী ফিঙ্গারপ্রিন্ট যাচাই করাauthorized_keys বা কোনো Git হোস্টিং সার্ভিসে যোগ করার আগে নিশ্চিত করুন যে একটি পাবলিক কী প্রত্যাশিত ফিঙ্গারপ্রিন্টের সাথে মিলে যায়
  • সার্ভার অ্যাক্সেস অডিট করা — দুর্বল বা পুরনো কী খুঁজে পেতে আপনার authorized_keys ফাইলে থাকা কীগুলোর অ্যালগরিদম এবং কী সাইজ দ্রুত শনাক্ত করুন
  • SSH সমস্যা ডিবাগ করা — পরীক্ষা করুন যে একটি কী সঠিক ফরম্যাটে আছে কিনা, প্রত্যাশিত অ্যালগরিদম ব্যবহার করছে কিনা, এবং একটি বৈধ কাঠামো আছে কিনা

সচরাচর জিজ্ঞাসা

আমার SSH পাবলিক কী কোথায় পাবো? বেশিরভাগ সিস্টেমে এটি ~/.ssh/id_ed25519.pub, ~/.ssh/id_rsa.pub, বা অ্যালগরিদমের উপর নির্ভর করে অনুরূপ পাথে সংরক্ষিত থাকে। আপনি আপনার SSH এজেন্টে লোড করা কীগুলো তালিকাভুক্ত করতে ssh-add -L-ও চালাতে পারেন।

আমার পাবলিক কী শেয়ার করা কি নিরাপদ? হ্যাঁ। পাবলিক কী শেয়ার করার জন্যই ডিজাইন করা হয়েছে। এটি প্রাইভেট কী বের করতে বা আপনার পক্ষে প্রমাণীকরণ করতে ব্যবহার করা যায় না।

SHA-256 এবং MD5 ফিঙ্গারপ্রিন্ট কেন আলাদা দেখায়? SHA-256 ফিঙ্গারপ্রিন্টগুলো Base64-এনকোডেড এবং SHA256: দিয়ে প্রিফিক্সড, যেখানে MD5 ফিঙ্গারপ্রিন্টগুলো MD5: দিয়ে প্রিফিক্সড কোলন-বিভক্ত হেক্সাডেসিমাল পেয়ার ব্যবহার করে। SHA-256 হলো আধুনিক OpenSSH সংস্করণগুলোতে ডিফল্ট।