জাম্প হোস্ট কী করে
জাম্প হোস্ট, যাকে ব্যাস্টিয়নও বলা হয়, এমন একটি সার্ভার যাতে আপনি সরাসরি সংযোগ করতে পারেন এবং যেটি আপনার অভ্যন্তরীণ সার্ভারগুলোতে পৌঁছাতে পারে। শুধু ব্যাস্টিয়নের SSH পোর্ট বাইরে উন্মুক্ত থাকে; অভ্যন্তরীণ সার্ভারগুলো কেবল অভ্যন্তরীণ নেটওয়ার্ক থেকে SSH সংযোগ গ্রহণ করে। ProxyJump ব্যবহার করলে আপনার ক্লায়েন্ট ব্যাস্টিয়নে একটি SSH সংযোগ খোলে এবং সেটির মধ্য দিয়ে লক্ষ্য সার্ভারে দ্বিতীয় একটি প্রান্ত থেকে প্রান্ত পর্যন্ত এনক্রিপ্ট করা সংযোগ তৈরি করে। ব্যাস্টিয়ন ট্র্যাফিক এগিয়ে দেয়, কিন্তু সেশনের বিষয়বস্তু দেখতে পায় না, আর আপনার প্রাইভেট কী আপনার কম্পিউটারেই থাকে।
কমান্ড লাইন থেকে সংযোগ করুন
-J অপশন দিয়ে জাম্প হোস্ট নির্দিষ্ট করা হয়। একাধিক হপ কমা দিয়ে আলাদা করুন; আপনার দেওয়া ক্রমেই সেগুলো ব্যবহার করা হবে। একই পথ নিয়মিত ব্যবহার করলে সেটিংস ~/.ssh/config-এ যোগ করুন, যাতে একটি ছোট উপনামই যথেষ্ট হয়।
ssh -J admin@bastion.example admin@app.internal
ssh -J admin@bastion.example,ops@hop2.example admin@app.internal
# ~/.ssh/config
Host app-internal
HostName app.internal
User admin
ProxyJump admin@bastion.exampleপ্রতিটি হোস্ট কী যাচাই করুন
প্রতিটি হপ নিজস্ব হোস্ট কী-সহ আলাদা একটি SSH সার্ভার, তাই ব্যাস্টিয়ন ও লক্ষ্য সার্ভারের ফিঙ্গারপ্রিন্ট অন্য কোনো বিশ্বস্ত মাধ্যমে নিশ্চিত করুন। যেকোনো হপে কী বদলালে সরাসরি সংযোগের মতোই গুরুত্ব দিয়ে তা যাচাই করতে হবে। প্রথম সংযোগের সময় দেখানো ফিঙ্গারপ্রিন্টের সঙ্গে প্রশাসক সার্ভারে যে মান পড়েন, সেটি মিলিয়ে দেখুন।
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256এজেন্ট ফরওয়ার্ডিংয়ের বদলে ProxyJump বেছে নিন
এজেন্ট ফরওয়ার্ডিং (ssh -A) ব্যবহার করলে ব্যাস্টিয়নে যথেষ্ট অধিকার আছে এমন যে কেউ, আপনি সংযুক্ত থাকা অবস্থায়, আপনার লোড করা কীগুলো ব্যবহার করতে পারে। ProxyJump-এর এটি দরকার হয় না, কারণ লক্ষ্য সার্ভারে প্রমাণীকরণ আপনার নিজের কম্পিউটার থেকেই হয়। ব্যাস্টিয়নে প্রাইভেট কী রাখাও এড়িয়ে চলুন এবং সেখানে কারা লগইন করতে পারবে তা সীমিত করুন।
সংযোগের সাধারণ সমস্যা
প্রথমে বের করুন কোন হপে সমস্যা হচ্ছে: শুধু ব্যাস্টিয়নে সংযোগ করুন, তারপর -J দিয়ে ssh -vvv চালিয়ে দেখুন সংযোগ কোথায় থেমে যাচ্ছে। ব্যাস্টিয়ন কাজ করলেও লক্ষ্য সার্ভার কাজ না করলে সাধারণত কারণ হয় দুটির মাঝের ফায়ারওয়াল, ভুল অভ্যন্তরীণ নাম অথবা লক্ষ্য সার্ভারের আপনার কী গ্রহণ না করা। AllowTcpForwarding no দিয়ে কনফিগার করা সার্ভার জাম্প হোস্ট হিসেবে কাজ করতে অস্বীকার করে।
CH-J Server Manager-এ জাম্প হোস্ট
Alpha 0.1.1 সেভ করা বা হাতে লেখা জাম্প হোস্ট দিয়ে সংযোগ করে, আর সেভ করা হোস্ট দিয়ে সর্বোচ্চ তিনটি জাম্প হোস্টের শৃঙ্খল তৈরি করা যায়। প্রতিটি হপে হোস্ট কী যাচাই করা হয়। উপলব্ধতা মনিটর জাম্প হোস্টের আড়ালে থাকা সার্ভারকে শুধু সেই জাম্প হোস্টে খোলা সেশনের মাধ্যমে যাচাই করে; তা না হলে সার্ভারকে অযাচাইকৃত দেখায়, কখনোই অনলাইন দেখায় না। Beta 0.1.0-এ এই সুবিধা নেই।