দুটি SSH উপনাম, একটি সার্ভার: সরাসরি VPN নাকি জাম্প হোস্ট
একটি অনুমোদিত VPN পথ আর একটি অনুমোদিত ব্যাস্টিয়ন পথ আলাদা উপনাম ও বুকমার্ক হিসেবে রাখুন, যাতে কোনো শর্টকাটকে অনুমোদিত রুট অনুমান করতে না হয়।
একই প্রাইভেট সার্ভার একটি অনুমোদিত VPN-এর মাধ্যমে এবং একটি অনুমোদিত ব্যাস্টিয়নের মধ্য দিয়ে উত্তর দেয়, আর আপনি অনুমানকারী শর্টকাটের বদলে প্রতিটির জন্য একটি Emacs বুকমার্ক চান। সিদ্ধান্তটি নয় কোন পথটি ভালো; সিদ্ধান্তটি হলো আপনার সামনের কাজের জন্য কোন পথটি অনুমোদিত। দুটোকেই স্পষ্ট রাখুন, আলাদা নাম দিন, এবং ফাইলের নামই বলে দিক কোনটি আপনি বেছেছেন।
প্রথম শর্ত: কোন পথগুলি অনুমোদিত?
জাম্প হোস্ট VPN-এর প্রয়োজনীয়তার স্বয়ংক্রিয় বিকল্প নয়, আর VPN কোনো অনুমোদিত ব্যাস্টিয়ন এড়িয়ে যাওয়ার লাইসেন্স নয়। জিজ্ঞাসা করুন আপনার অ্যাকাউন্ট ও এই ডেটার জন্য কোন রুটগুলি অনুমোদিত। দুটোই অনুমোদিত হলে আপনার পছন্দ আছে; কেবল একটি হলে বুকমার্ক সেটে একটি এন্ট্রি থাকে। সেই উত্তর আসে ডেটার মালিকের কাছ থেকে, আজ যে রুটটি কাকতালীয়ভাবে কাজ করছে তার কাছ থেকে নয়।
উত্তরটি লিখে রাখুন, কারণ কোনো ঘটনার সময় এই পার্থক্য দ্রুত হারিয়ে যায়।
দুটি পথেরই নিজস্ব অ্যাকাউন্ট ও পরিচয় কনফিগারেশন দরকার। একটি রুটে কাজ করা একটি ভাগ করা উপনাম অন্যটিতে ব্যর্থ হতে পারে এমন কারণে যার নেটওয়ার্কের সঙ্গে কোনো সম্পর্ক নেই।
দ্বিতীয় শর্ত: প্রতিটি পথকে কি আলাদাভাবে নাম দিতে পারেন?
একটি SSH কনফিগ একটি ঠিকানার জন্য দুটি হোস্ট উপনাম রাখতে পারে, প্রতিটির আলাদা প্রক্সি আচরণসহ। নির্দিষ্ট ব্লকগুলি যেকোনো বিস্তৃত ওয়াইল্ডকার্ডের আগে রাখুন, কারণ বেশিরভাগ অপশনের জন্য প্রথম পাওয়া মানই জেতে।
Host proj-direct proj-bastion
HostName 10.60.0.21
User analyst
ControlPath none
Host proj-direct
ProxyJump none
Host proj-bastion
ProxyJump gw.example.com
উপরের ঠিকানাটি একটি উদাহরণ; আপনার দল যে ঠিকানা নথিভুক্ত করে সেটি বসান। জাম্প উপনামেরও ব্যাস্টিয়নের অনুমোদিত অ্যাকাউন্ট দরকার, যার মানে সাধারণত ব্যাস্টিয়নের নিজের জন্য একটি দ্বিতীয় Host ব্লক। এখানে সংযোগ ভাগাভাগি বন্ধ রাখলে পথের তুলনা সৎ থাকে, কারণ পুনর্ব্যবহৃত মাল্টিপ্লেক্সড সংযোগ আপনি যে রুট পরিবর্তন পর্যবেক্ষণ করতে চাইছেন তার চেয়ে বেশি দিন টিকতে পারে।
তখন দূরবর্তী ফাইলের নামগুলি আলাদা ও পাঠযোগ্য থাকে।
/ssh:proj-direct:/srv/project/README.md
/ssh:proj-bastion:/srv/project/README.md
তৃতীয় শর্ত: এডিটর কি পার্থক্যটি জানে?
TRAMP ওই দুটি ফাইলের নামকে আলাদা গন্তব্য হিসেবে ধরে, যা-ই আপনি চান। প্রতিটিকে এমন নামে বুকমার্ক করুন যা বলে এটি কোন পথ ব্যবহার করে, এবং একটি গন্তব্যের অর্থ সম্পাদনা করার বদলে বুকমার্কটি আবার খুলুন। দুটি বুকমার্ক তুলনাটিকেও দৃশ্যমান করে: কোনো কনফিগ না বদলেই আপনি দুটোই খুলে দেখতে পারেন কোনটি ব্যর্থ হয়।
ProxyJump জড়িত থাকলে একটি সেটিং মনোযোগ দাবি করে: সংশ্লিষ্ট সংযোগগুলির জন্য TRAMP-এর সংযোগ ভাগাভাগি বন্ধ থাকতে হবে, তাই সেগুলি খোলার আগে tramp-use-connection-share-কে nil করুন। এটি একটি সামঞ্জস্য সেটিং, কোনো অনুপস্থিত রুটের সমাধান নয়, এবং এটি অননুমোদিত পথকে অনুমোদিত করে না। TRAMP FAQ বুকমার্কগুলিকে এই নামগুলি সংক্ষিপ্ত করার সমর্থিত উপায় হিসেবে নথিভুক্ত করে।
নিঃশব্দে রুট বদলানো বুকমার্ক কোনো বুকমার্ক না থাকার চেয়েও খারাপ।
নেটওয়ার্ক আইকন কেন কিছুই প্রমাণ করে না
NetworkManager-এর সামগ্রিক স্টেট মান 70 বোঝায় মেশিনটির গ্লোবাল সংযোগ আছে। এটি কোনো VPN প্রোফাইলের নাম বলে না, এবং সাধারণ Wi-Fi এটিকে সন্তুষ্ট করে। ঠিক যে রুটটি আপনার দরকার তা বহনকারী শুধু-প্রাইভেট টানেল সেই সমষ্টিগত মানটি অপরিবর্তিত রাখতে পারে। এজন্যই আইকনের সঙ্গে বাঁধা একটি শর্টকাট এমন পথের জন্য প্রস্তুতির কথা জানাতে পারে যা এটি কখনো পরীক্ষা করেনি।
গ্লোবাল অবস্থার বদলে নির্দিষ্ট সংযোগের অবস্থা পড়ুন।
আপনি যদি কিছু স্বয়ংক্রিয় করেন, নামযুক্ত সংযোগটি জিজ্ঞাসা করুন, তারপর এই ক্রমে লক্ষ্য রুট, রিজলভারের উত্তর এবং SSH পৌঁছানোযোগ্যতা যাচাই করুন। এগুলির প্রত্যেকটি ব্যর্থ হতে পারে যখন আগেরটি সফল, আর এগুলিকে একটি একক বুলিয়ানে মিলিয়ে দেওয়াই হলো স্বয়ংক্রিয় ব্যবস্থা এমন পথের জন্য সাফল্য রিপোর্ট করার উপায় যা এটি কখনো ব্যবহার করেনি।
কোনো পথ কাজ করা বন্ধ করলে কী করবেন
তদন্ত করার আগে আপনার বাফার সংরক্ষণ করুন, কারণ বিদ্যমান TRAMP সেশন রুট পরিবর্তনের চেয়ে বেশি দিন টিকতে পারে এবং পরে পরের লেখার সময় ব্যর্থ হতে পারে। সমর্থিত পরিষ্কার-পরিচ্ছন্নতার মাধ্যমে এটি বন্ধ করুন, বুকমার্কটি আবার খুলুন, এবং সার্ভার বন্ধ আছে ধরে নেওয়ার বদলে দুটি পথ তুলনা করুন।
ব্যাস্টিয়ন ও গন্তব্য—দুটির জন্যই হোস্ট-কী যাচাই চালু রাখুন।
ভিন্ন রুট আপনাকে এমন সার্ভার কী গ্রহণ করার অধিকার দেয় না যা আপনি আশা করেননি, আর এটি অননুমোদিত পথকেও গ্রহণযোগ্য করে না। দুটিই আপনি যে সিদ্ধান্ত নিচ্ছিলেন তার থেকে আলাদা সিদ্ধান্ত।