ডোমেন নাম ছাড়াই কীভাবে অভ্যন্তরীণভাবে সার্ভারগুলিতে এসএসএস করবেন?


10

আমার কাজটি শেষ করার জন্য আমাকে কাজের সময়ে একাধিক সার্ভারে লগ ইন করতে হবে। অ্যাক্সেসের জন্য আমি একটি সার্ভারের FQDN টাইপ করে ক্লান্ত হয়ে পড়ছি। আমি আমাদের নিজস্ব ব্যক্তিগত নেটওয়ার্কে এসএসএসের মাধ্যমে লগ ইন / আউট করছি। আমি 99% নিশ্চিত যে এটি আমাদের নিজস্ব ব্যক্তিগত নেটওয়ার্কে রয়েছে b / c সমস্ত সার্ভারে আইপি অ্যাডার রয়েছে 10.xyz কি কেবল হোস্টনামের সাথে সার্ভারগুলিতে ডোমেনের কোনও উপায় আছে যা ডোমেন নাম নয়?

আমাদের একাধিক দেশে সার্ভার রয়েছে। আমাদের সার্ভারগুলির নামকরণের পদ্ধতিটি খুব দীর্ঘ। এটি নাম হিসাবে নামকরণ করা হয়েছে:

hostname.country.domainname.com

আমি কারপাল টানেলটি টাইপ করছি ssh me@hostname1.country.domainname.com

... প্রতিবার আমি আমাদের একটি সার্ভার অ্যাক্সেস করি। যদি আমি মার্কিন যুক্তরাষ্ট্রে থাকি এবং আমি যুক্তরাষ্ট্রে থাকা অন্য হোস্টকে অ্যাক্সেস করার চেষ্টা করি তবে আমি কেবল টাইপ করতে পারি ssh me@hostname2এবং আমি সূক্ষ্মভাবে সংযোগ করি। তবে আমি যদি মার্কিন যুক্তরাষ্ট্রে থাকি এবং ইংল্যান্ডের কোনও সার্ভারের সাথে সংযোগ স্থাপনের চেষ্টা করি তবে আমি টাইপ করে ssh me@hostname3.engসংযোগ করতে পারব না hostname3

আমি যে কাজটি করেছি তা হ'ল কিছু সার্ভারের জন্য আমার ~ / .ssh / কনফিগারেশন ফাইলে একটি উপাধি সেটআপ করা। তবে, আমি মনে করি না যে এই ফাইলটিতে 1000+ সার্ভার যুক্ত করা সম্ভব হবে। আমি ইতিমধ্যে 20+ সার্ভার যুক্ত করেছি এবং আমার সহকর্মীরা মনে হয় আমি পাগল, যদিও আমি মনে করি তারা চারপাশে ছড়িয়ে পড়ার সময় এফকিউডিএন টাইপ করার জন্য পাগল।

আমাদের জন্য এমন কিছু সেট আপ করার কি সহজ উপায় আছে যাতে প্রতিবার আমাদের ডোমেইননাম.কম এ টাইপ না করতে হয়?

উত্তর:


18

আপনি ওয়াইল্ডকার্ড করতে পারেন %hএবং আপনার কনফিগারেশনে ব্যবহার করতে পারেন

যেমন

Host *.eng
  Hostname %h.domainname.com

এখন আপনি যখন ssh foo.engএটি করবেন তখন সংযোগ দেওয়ার চেষ্টা করবে foo.eng.domainname.com

আপনি এই কনফিগারেশনে অন্যান্য বিকল্পগুলিও যুক্ত করতে পারেন; যেমন ব্যবহারকারীর নাম জোর করা

Host *.eng
  Hostname %h.domainname.com
  User me

এখন আপনি যখন ssh foo.engএটি করবেন foo.eng.domainname.comব্যবহারকারী হিসাবে সংযোগ করার চেষ্টা করবে me

% ssh foo.eng
ssh: Could not resolve hostname foo.eng.domainname.com: Name or service not known

(ভাল, অবশ্যই এটি আমার পক্ষে বৈধ হোস্টনেম না হওয়ার আগে আমি একটি ত্রুটি পেয়েছি!)

সুতরাং এখন আপনার প্রতি দেশ প্রতি একটি বিধি প্রয়োজন।


আমার প্রথম চিন্তা ছিল ডিএনএস এলিয়াস, দ্বিতীয়টি হোস্ট ফাইল, কিন্তু আমি মিস করেছি যে একাধিক সার্ভার রয়েছে। এই সমাধানটি দুর্দান্ত দেখাচ্ছে। আপনার পোস্ট করা লাইনটি কোন কনফিগারেশনটি পেয়েছে?
Xalorous

এটি এর মধ্যে চলে যায় $HOME/.ssh/configবা আপনি এটির /etc/ssh/ssh_config
স্টিফেন হ্যারিস

এটা কি কাজ করে user@*.eng?
Xalorous

3
আমি যে নিয়ম লিখেছিলাম তা দিয়ে আপনি করতে পারেন ssh foobar@somewhere.engএবং এটি প্রত্যাশার মতো কাজ করবে। এই সমস্ত কাজটি হস্টনামের উপাদানটি পুনর্লিখন করে। এটি এমনকি সঙ্গে কাজ করব scpএবং sftpইত্যাদি।
স্টিফেন হ্যারিস

9

যোগ করলে

search domainname.com

থেকে /etc/resolv.conf, এবং ব্যবহার hostname.country, ssh(এবং অন্যান্য নেটওয়ার্ক প্রোগ্রাম, যে বিষয়টি জন্য) হবে স্বয়ংক্রিয়ভাবে পরিশেষে যোগ domainname.comকরার জন্য আপনাকে 1

আমি মনে করি না যে আপনার searchপথে বিভিন্ন দেশের ডোমেন যুক্ত করা ভাল ধারণা কারণ আপনি যদি অপ্রত্যাশিত আচরণ পেতে পারেন তবে যদি দুটি ভিন্ন দেশের দুটি সার্ভার একই হোস্টনাম 2 ভাগ করে নেয়

আমি বিশ্বাস করি sshকনফিগারেশন পরিবর্তন করার চেয়ে এই পদ্ধতিটি আরও ভাল কারণ hostname.countryআপনি যে প্রোগ্রামটি ( telnet, ভিএনসি, ...) ব্যবহার করছেন তা নির্বিশেষে এটি সমাধান করতে দেয় ।

দেখা resolv.conf(5)


1 আরও সঠিকভাবে, এটি নিজেই domainname.comসমাধান করতে না পারলে এটি সংযোজন করবে hostname.country

2 এরকম একটি পরিস্থিতিতে hostnameসেই দেশের সার্ভারের সমাধান হবে যার ডোমেনটি প্রথম searchপথে তালিকাভুক্ত ।


2
বিটিডব্লিউ আপনি এনও-র ভেরিয়েবল LOCALDOMAIN দ্বারা নন-রুট এবং প্রতি প্রক্রিয়া হিসাবেও এটি করতে পারেন। man resolv.conf
rudimeier

এটি এসএসএইচ হোস্টকে সমাধান করতে কাজ করে, তবে আপনি জিএসএস / কার্বেরোস ব্যবহার করলে নামগুলি মেলে না এবং লিখন ব্যর্থ হবে।
নিক টি

7

আপনি CanonicalDomainsআপনার ssh কনফিগারেশনে বিকল্পটি ব্যবহার করতে পারেন ।

আপনার ssh কনফিগারেশন ফাইলে নিম্নলিখিতটি যুক্ত করার ফলে ssh domainname.comযে কোনও হোস্টের নামে সর্বাধিক 1 টি বিন্দুতে যুক্ত হওয়ার চেষ্টা করবে :

CanonicalizeHostname yes
CanonicalDomains domainname.com

এই কনফিগারেশনের মাধ্যমে ssh foo.engপ্রথমে চেষ্টা করা হবে foo.eng.domainname.comএবং foo.engহোস্টটি খুঁজে পাওয়া না গেলে ফ্যালব্যাক করবে । তেমনি, ssh github.comপ্রথমে চেষ্টা করবে github.com.domainname.com, সুতরাং আপনি যদি গিটহাবের সাথে সংযোগ স্থাপন করতে চান তবে আপনার ডিএনএস সার্ভারটি অস্তিত হোস্টের রেকর্ড ফিরিয়ে আনবে না।

CanonicalizeMaxDotsনিয়ন্ত্রণ করার আগে SSH এটা সম্পূর্ণরূপে যোগ্যতাসম্পন্ন বিবেচনা ও যোগ করা আছে কত বিন্দু হোস্টনাম প্রদর্শিত করতে পারেন ব্যবহার করা যেতে পারে domainname.com। এটি 1 এ ডিফল্ট হয় যা আপনার কাছে বর্তমানে থাকা স্কিমটি আপনার জন্য যথেষ্ট হওয়া উচিত, তবে আপনি যদি কখনও এরকম কিছু পান তবে আপনার hostname.city.countryএটি বাড়ানো দরকার।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.