প্রসারিত হোস্টনামে এসএসএইচ কনফিগারেশন ওয়াইল্ডকার্ড


25

নির্দিষ্ট ডোমেনের সমস্ত হোস্টের জন্য একটি নির্দিষ্ট মানতে আমার ডিফল্ট ব্যবহারকারীর নাম সেট করতে আমি আমার এসএসএইচ কনফিগারেশনে একটি ওয়াইল্ডকার্ড রাখতে চাই। তবে আমি কিছু নির্দিষ্ট হোস্টের জন্য কিছু সংক্ষিপ্ত নামও রাখতে চাই। আমি এই মতো কাজ করার আশা করছিলাম:

Host *.mydomain.com
    User myusername
Host host1
    Hostname host1.mydomain.com

যারা সেটিংস সঙ্গে, যদি আমি টাইপ ssh host1.mydomain.comএটা মূল্যায়ণ myusername@host1.mydomain.com, কিন্তু যদি আমি টাইপ ssh host1এটা আমার ইউজার সেটিং প্রযোজ্য নয় এবং আমি পরিবর্তে দেখতে mylocalusername@host1.mydomain.com

চূড়ান্ত প্রসারিত হোস্টনামের সাথে কি ওয়াইল্ডকার্ডগুলি মিলানোর কোনও উপায় আছে যাতে আমি সংক্ষিপ্ত বা দীর্ঘ ফর্মটি টাইপ করতে এবং একই ফলাফল পেতে পারি?


আপনি যদি অর্ডার স্যুইচ করেন, ওয়াইল্ডকার্ড বিভাগটি দ্বিতীয় স্থানে রেখেছেন।
এসিমেট

আপনি কি এটা চেষ্টা করেছেন? আমি দৃ sure়ভাবে নিশ্চিত যে যদি কিছু থাকে তবে ঠিক আপনাকে ডোমেনের সাথে সঠিক ব্যবহারকারীর নাম দেয়।
মু মাইন্ড

আমি এটি চেষ্টা করে দেখিনি, এজন্য আমি এটিকে একটি স্বল্পমূল উত্তরের পরিবর্তে চেষ্টা করার মতো মন্তব্য হিসাবে একটি মন্তব্যে পরিণত করেছি।
এসিমেট

উত্তর:


13

সহজভাবে ব্যবহার করুন:

Host *.mydomain.com host1
User myusername

Host host1
Hostname host1.mydomain.com
  • বিকল্প নিদর্শনগুলি একটি হোস্ট লাইনে একটি সীমাবদ্ধ ফাঁকা সরবরাহ করে ।
  • সমস্ত মিলে যাওয়া হোস্ট প্যাটার্নগুলি প্রয়োগ করা হয়েছে।
  • যদি কোনও বিকল্প একাধিকবার ঘটে থাকে তবে কেবল 1 ম সংযোগটি ব্যবহৃত হয়

3
এটি কমপক্ষে কিছুটা টাইপিং সাশ্রয় করে। মনে হচ্ছে আপনি ডোমেনের তথ্য নকল করা এড়ানোর কোনও উপায় সম্পর্কে অবগত নন?
মিউ মাইন্ড

এসএসএইচ কনফিগারেশন ফাইলটিতে হার্ড কোড না দিয়ে কেবল ডিফল্ট ডোমেন, যেমন "ল্যান" বা "মাইকম্পানি ডট কম" যুক্ত করার চেষ্টা করতে পারলে এটি দুর্দান্ত হবে।
সাস্টার্প

18

আপনি কেবল নিজের উপনামের ক্যানোনিকাল হোস্টনামের সাথে ssh_config পুনঃস্থাপন করতে সেট CanonicalizeHostnameকরতে yesপারেন। উদাহরণ স্বরূপ:

CanonicalizeHostname yes
Host *.mydomain.com
    User myusername

Host host1
    HostName host1.mydomain.com

অন্যথা, তাহলে আপনি হোস্টনেইম remap করতে চাই, আপনি ব্যবহার করতে পারেন Matchপরিবর্তে Hostশুধুমাত্র ক্যানোনিকাল হোস্টনেইম মেলে। উদাহরণস্বরূপ, এতে:

Match canonical host="*.mydomain.com"
    User myusername

Host host2.mydomain.com
    HostName host2.otherdomain.com

আপনি যখন সংযোগ করবেন তখন ব্যবহারকারীর নির্দেশিকা সেট করা হবে না host2.mydomain.com


মনে রাখবেন যে এখানে এখনও ssh এর পুরানো সংস্করণ রয়েছে যা এই বিকল্পগুলিকে সমর্থন করে না - আপনি যদি এর মধ্যে একটির মধ্যে চলে যান তবে আমি যেমন করেছি, হোস্ট সমাধানটি এখনও কাজ করবে।
কেরস্টেলাইন

2

CanonicalDomains ব্যবহার করাও কাজ করবে।

CanonicalizeHostname yes
CanonicalDomains mydomain.com

Host *
User myusername

আপনি যদি কোনও নির্দিষ্ট হোস্টের একটি সংক্ষিপ্ত নাম রাখতে চান তবে উদাহরণস্বরূপ:

Host h
Hostname host1

তবে আমি একটি সংক্ষিপ্ত নামের প্রস্তাব দেব না।


1

আপনি আপনার .ssh / কনফিগারেশনে% h.mydomain.com ব্যবহার করতে পারেন।


 Host host?
 User myusername
 Hostname %h.mydomain.com

Host host?? User myusername Hostname %h.mydomain.com

Host host??? User myusername Hostname %h.mydomain.com

এখন আপনি এটি করতে পারেন:

ssh হোস্ট 1
পরিবর্তে
ssh host1.mydomain.com
ssh হোস্ট 10
পরিবর্তে
ssh host10.mydomain.com
এবং এসএসএস হোস্ট 100

শুভেচ্ছা, বার্ট

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