ব্যাশ স্ক্রিপ্টে কীভাবে এসএসএইচ পরিচিত হোস্ট যুক্ত করবেন?


13

আমি একটি নতুন সার্ভারের বিধান দেওয়ার জন্য একটি ব্যাশ স্ক্রিপ্ট তৈরি করছি যা আমি একটি ওয়েব অ্যাপ্লিকেশন স্থাপন করতে পারি। আমার সর্বদা একটি কাজটি হ'ল গিটি হাব হিসাবে পরিচিত হোস্ট হিসাবে ব্যবহার করা ssh git@github.com। আমি কীভাবে ব্যাশ স্ক্রিপ্টে এই প্রক্রিয়াটি স্বয়ংক্রিয় করতে পারি, এবং এটি আদর্শবান পদ্ধতিতে করতে পারি?

উত্তর:


17

যাওয়ার সহজ উপায় হ'ল এটির মতো কিছু করা।

ssh-keyscan remote_server >>~/.ssh/known_hosts

যদি এই বাক্সটি একেবারেই নতুন হয় আপনি এসএস-কি-স্ক্যান~/.ssh চালানোর আগে আপনাকে ডিরেক্টরি তৈরি করতে হবে ।

মনে রাখবেন যে ssh-keycan স্বতঃস্ফূর্ত হোস্ট-নেম নিতে পারে। এটি যা করতে পারে তার সবগুলি কী পাবে।


1
পিএস - বিধানের জন্য আপনার বাশ স্ক্রিপ্টের পরিবর্তে পুতুলের মতো কিছু ব্যবহার করা উচিত। পুতুলের জন্য এটি সহজেই সংযুক্তি সংস্থান দ্বারা পরিচালিত হতে পারে । পরিচিত_হোস্টগুলি এন- মাসেস
সার্ভারফল্ট.

2
এটি নিশ্চিতভাবে আমার কাছে ভাল লাগছিল, তবে পুতুল এবং প্রতিযোগীদের প্রতি কয়েক ঘন্টা ব্যয় করার পরে, আমি ব্যাশ স্ক্রিপ্ট এবং বিচক্ষণতার দিকে ফিরে এসেছি। যদি সেই সরঞ্জামগুলি স্বজ্ঞাত হয় তবে স্পষ্টতই আমার কোনও প্রজ্ঞা নেই। YMMV।
রন বুর্ক

ব্যাশ ব্যবহার করুন। পুতুল বা জবাবদিহির মতো জিনিসগুলির বিভিন্ন সংস্করণ জুড়ে আমি ক্রমাগত সমস্যাগুলিতে চলে যাই। আমরা সবসময় ব্যাশে ফিরে যাই ... 3 টি সংস্থা এখন এভাবে চলছে এবং বাশ আমাদের জন্য সর্বদা নির্ভরযোগ্য।
লাইগামার

4

আপনি কি নতুন কীটি গ্রহণ করে স্বয়ংক্রিয় করার চেষ্টা করছেন? যদি তা হয় তবে আপনি -oStrictHostKeyChecking = না ব্যবহার করতে পারেন।
এটি করা খুব খারাপ ধারণা কারণ আপনি এখন ম্যান-ইন-মধ্য-আক্রমণের জন্য পুরোপুরি উন্মুক্ত।

এর চেয়ে ভাল বিকল্প হ'ল একটি পরিচিত_হোস্ট ফাইল পরিচালনা করা এবং আপনি নতুন সার্ভারের ব্যবস্থা করার সময় সেই ফাইলটি পুনরায় ব্যবহার করা। এটিকে গিথুবে আটকে দিন এবং গিথুবগুলিতে ফোটার আগে ফাইলটি ডাউনলোড করার জন্য একটি সহজ স্ক্রিপ্ট লিখুন।

কঠোর হোস্ট কী পরীক্ষা করা ভাল জিনিস।


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

2
একটি নতুন সার্ভারের বিধান দিন, ম্যানুয়ালি আপনার মত গিথুবে s জিজ্ঞাসা করা হলে হোস্ট কীটি গ্রহণ করুন। প্রস্থান. Newly / .ssh / known_hosts অনুলিপি করে অন্য কোথাও এই নতুন ব্যবস্থা করা সার্ভার থেকে (গিথুব, ওয়েব সার্ভার, যতক্ষণ আপনি এটি পেতে পারেন তা বিবেচনা করে না)। পরের বার আপনি যখন কোনও সার্ভারের ব্যবস্থা করবেন তখন গিথুব থেকে ঝাঁকুনির আগে সেই ফাইলটি আবার অনুলিপি করুন। আপনার ফাইলটি সম্পাদনা করার দরকার নেই।
ইউনিক্স

এটি আমার উত্তর (নিরাপদ) চেয়ে ভাল। ইউনিক্সের উত্তরের আরও উন্নতি হ'ল 'ssh-keycan github.com' পার্স করা এবং প্রত্যাবর্তিত কীটি ~ / .ssh / ज्ञात_হোস্টে সংরক্ষণ করা যাতে আপনার কোনও ফাইল আপডেট করতে না পারা আপডেট করার প্রয়োজন হয়।
সাইরেক্স

এটিও কাজ করবে, তবে আমি এটি আরও ভাল বিবেচনা করব না। আপনি যদি প্রতিবার নতুন হোস্ট-কী ধরেন তবে আপনি সম্ভাব্যভাবে একটি ম্যান-ইন-দ্য মিডল আক্রমণটির জন্য নিজেকে প্রস্তুত করছেন।
ইউনিক্স

1
আমার শেষ মন্তব্যটি স্পষ্ট করার জন্য (সম্পাদনায় খুব দেরী): প্রতিবার আপনি কোনও হোস্টকে সরবরাহ করার সময় নতুন হোস্ট-কী ধরে নেওয়া স্ট্রাইকহস্টকিচেকিং = না সেট করার চেয়ে কার্যত আলাদা নয়। এর মধ্যে দুটির সাথেই আপনি প্রতিবার যখন বিধান করবেন তখন যা কিছু কী পাঠানো হবে অন্ধভাবে বিশ্বাস করছেন। আপনি যদি মনে করেন কোনও এমআইটিএম আক্রমণ সম্ভাব্য নয় তবে এই দুটি নিবন্ধটি পড়ুন। গিথুব একটি বিশাল লক্ষ্য হবে।
ইউনিক্স

1

আমি নিশ্চিত না যে আমি প্রশ্নটি বুঝতে পেরেছি, তবে আমি মনে করি আপনি ज्ञात_হোস্ট প্রম্পটটি উপেক্ষা করতে বা এটি পুরোপুরি এড়াতে চান, এই ক্ষেত্রে:

ssh -o স্ট্রাইকটহস্টকিচেকিং = না

বা অন্যান্য পরামর্শ এখানে: http://www.joedog.org/2012/07/ssh-disable-mitted_hosts-prompt/


আমি গিটহাব হোস্ট কী গ্রহণ করার একটি অ-ইন্টারেক্টিভ উপায় চাই (যেহেতু এটি ব্যাশ স্ক্রিপ্টে ঘটবে)।
অ্যান্ড্রু

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