একাধিক 'হোস্ট *' ssh_config এ?


27

~ / .Ssh / কনফিগারেশনটি যেভাবে কাজ করে সে সম্পর্কে আমার বোঝাটি হ'ল প্রতিটি 'হোস্ট' লাইনটি কনফিগ ফাইলে ওই পয়েন্টের পরে যে কোনও হোস্টের সাথে মিলের জন্য কার্যকর হয়।

আমার সাথে অনেকগুলি ব্যক্তিগত সার্ভার এবং কাজের সার্ভার রয়েছে যার সাথে আমার সংযোগ স্থাপন করা দরকার। আমি নীচের মতো কিছু করার চেষ্টা করছি:

# সাধারণ সেটিংস
কন্ট্রোলমাস্টার অটো
কন্ট্রোলপথ ~/.ssh/controlmaster/%r@%h:% p
হ্যাঁ হ্যাঁ
ফরওয়ার্ডএক্স 11 হ্যাঁ
জিএসএসএপিআইএ প্রমাণীকরণ নং
হ্যাঁ হ্যাঁ

# ব্যক্তিগত সার্ভারগুলি
হোস্ট *
ব্যবহারকারী হারলিপিগ
আইডেন্টিটি ফাইল। / .Ssh / ব্যক্তিগত_আইডি_আর্সা rs

হোস্ট হোস্ট 1
হোস্ট নেম হোস্ট 1.com

হোস্ট হোস্ট 2
হোস্ট নেম হোস্ট 2.com

# কাজের সার্ভারগুলি
হোস্ট *
ব্যবহারকারী alan.young
আইডেন্টিটি ফাইল। / .Ssh / work_id_rsa

হোস্ট ওয়ার্ক 1
হোস্ট নেম work1.companyserver.com

হোস্ট work2
হোস্ট-নেম work2.companyserver.com

হোস্ট *
ব্যবহারকারী হ্রাসকারী

হোস্ট dev1
হোস্টনাম dev1.companyserver.com

হোস্ট ডেভ 2
হোস্টনাম dev2.companyserver.com

দস্তাবেজগুলি ইঙ্গিত দিচ্ছে যে হোস্ট 1 এবং হোস্ট 2 'ব্যক্তিগত_আইডি_আর্সা' এবং ব্যবহারকারীর হারেলিপিগ ব্যবহার করা উচিত। work1, work2, dev1 এবং dev2 'work_id_rsa' ব্যবহার করা উচিত এবং প্রথম দুটি ব্যবহারকারীর 'alan.young' এবং dev1 এবং dev2 ব্যবহারকারীর 'ডেভুসার' হওয়া উচিত

তবে, এটি হচ্ছে না। 'হোস্ট *' যাই হোক না কেন আমি প্রথমে নিচের সমস্ত হোস্টের সাথে সংযোগ স্থাপনের চেষ্টা করে। আমি কি ভুল বোঝাবুঝি করছি বা কিছু মিস করছি?


আপনাকে ধন্যবাদ, এই দুটি উত্তরের মধ্যেই আমি আমার সংযোগগুলি কাজ করতে সক্ষম হয়েছি।
harleypig

উত্তর:


36

ssh_configম্যানুয়াল থেকে :

যেহেতু প্রতিটি প্যারামিটারের জন্য প্রথম প্রাপ্ত মান ব্যবহৃত হয়, তাই ফাইলের শুরুতে আরও হোস্ট-নির্দিষ্ট ঘোষণাগুলি দেওয়া উচিত এবং শেষে সাধারণ ডিফল্ট দেওয়া উচিত।

সুতরাং আপনার উদাহরণে, সমস্ত হোস্ট User harleypigএবং ব্যবহার করবে IdentityFile ~/.ssh/personal_id_rsa

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

Host host1
Hostname host1.com
Host host2
Hostname host2.com
Host host*
User harleypig
IdentityFile ~/.ssh/personal_id_rsa

Hostহোস্ট কার্ডের একটি নির্দিষ্ট সেট যদি ওয়াইল্ডকার্ডের সাথে মিলে না যায় তবে আপনি কোনও লাইনে একাধিক নিদর্শন রাখতে পারেন Host host* more* outlier


15

আপনি অবশ্যই এটি ভুল করছেন।

  • আপনার সর্বদা Host *সর্বশেষ প্রবেশ হিসাবে রাখা উচিত ।
  • আপনার একাধিক Host *এন্ট্রি থাকতে পারে না

যদি আপনার কাজের মেশিনগুলির একটি নাম ফর্ম্যাট থাকে যা আপনি কেবলমাত্র ওয়ার্ক মেশিনগুলিকে লক্ষ্য করতে সাধারণীকরণ করতে পারেন, উদাহরণস্বরূপ: machine1.work.com, host.work.com, fileserver.work.com তবে আপনি নিজের কাজের মেশিনগুলিকে টার্গেট করতে পারেন:

Host *.work.com
User alan.young
IdentityFile ~/.ssh/work_id_rsa

আপনার ব্যক্তিগত মেশিনে একই প্রযোজ্য।


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

বিটিডব্লিউ, এটি Host *.work.comএকটি অবৈধ বাক্য গঠন। এটি কেবল অন্যভাবে কাজ করে:Host myserver*
ড্যানিয়েল আন্দ্রে মিনিসি

3
@ MincăDanielAndrei এটি উভয় উপায়ে কাজ করে, এটি কেবল একটি ওয়াইল্ডকার্ড এক্সপ্রেশন এবং আপনি এটিকে অন্য কোনও ওয়াইল্ডকার্ড হিসাবে ব্যবহার করতে পারেন। হোস্ট গিট-কোডেকোমিট। *। Amazonaws.com এটি আমার ~ / .ssh / কনফিগারেশনের একটি কার্যকরী উদাহরণ
হামেদুল্লাহ খান

@ হামেদুল্লাহ খানকে গুরুত্ব সহকারে, আমি চেষ্টা করেছি এবং এটি সাড়া দিচ্ছে না। আপনি যদি Host *subdomain.comএটি করেন তবে এটি কোনও প্রতিক্রিয়া জানায় না।
ড্যানিয়েল আন্দ্রে মিনসি

1
@ MincăDanielAndrei এই আচরণটি ম্যান পেজগুলিতে নথিভুক্ত করা হয়েছে, যদি এটি কাজ করে না (আমার জন্যও নয়) এটি একটি বাগ is
goetzc
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.