পাবলিক-কী প্রমাণীকরণ ব্যর্থ হলে কীভাবে আমি পাসওয়ার্ড প্রম্পট করার চেয়ে ssh ব্যর্থ করব?


107

আমি একটি স্ক্রিপ্ট পেয়েছি যা সর্বজনীন কী প্রমাণীকরণ ব্যবহার করে বেশ কয়েকটি সার্ভারকে ছড়িয়ে দেয়। কোনও কনফিগারেশন সমস্যার কারণে সার্ভারগুলির মধ্যে একটি স্ক্রিপ্টটি লগইন করা বন্ধ করে দিয়েছে, যার অর্থ স্ক্রিপ্টটি একটি "পাসওয়ার্ড:" প্রম্পটে আটকে যায়, যা এটি স্পষ্টভাবে উত্তর দিতে পারে না, তাই এটি অন্যান্য সার্ভারগুলি চেষ্টা করেও না তালিকার মধ্যে প্রযোজ্য.

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

উত্তর:


138

ওপেনএসএসএইচের জন্য ব্যাচমোড রয়েছে, যা পাসওয়ার্ড প্রম্পটিং অক্ষম করা ছাড়াও কীগুলির জন্য পাসফ্রেজ (গুলি) অনুসন্ধান করা অক্ষম করা উচিত।

BatchMode

যদি "হ্যাঁ" সেট করা থাকে তবে পাসফ্রেজ / পাসওয়ার্ড জিজ্ঞাসা অক্ষম করা হবে। এই বিকল্পটি স্ক্রিপ্ট এবং অন্যান্য ব্যাচ কাজের ক্ষেত্রে দরকারী যেখানে কোনও ব্যবহারকারীর পাসওয়ার্ড সরবরাহ করার জন্য উপস্থিত নেই। যুক্তিটি অবশ্যই "হ্যাঁ" বা "না" হতে হবে। ডিফল্ট হ'ল "না"।

নমুনা ব্যবহার:

ssh -oBatchMode=yes -l <user> <host> <dostuff>

এটি আমার জন্য সর্বজনীন কী প্রমাণীকরণ অক্ষম করেছে। তবে আমি ssh ব্যবহারকারী @ হোস্ট-সি সামকোমন্ড হিসাবে উল্লেখ করছি। আমার জন্য কাজ আপ eneded ঠিক হয়ssh user@host -oPreferredAuthentications=publickey -C 'echo success'
এবি ক্যারল

20

আপনার সাথে নিম্নলিখিতগুলি যুক্ত করুন ~/.ssh/config:

PasswordAuthentication no

এবং সার্ভারে পাসওয়ার্ড প্রমাণীকরণ অক্ষম করতে একই লাইনে যুক্ত করুন /etc/ssh/sshd_configএবং পুনরায় চালু করুন sshd


7
আপনি যদি সমস্ত ssh ক্লায়েন্ট সংযোগের জন্য পাসওয়ার্ড প্রমাণকে অক্ষম করতে না চান তবে আপনি কমান্ড লাইনে অপশনও নির্দিষ্ট করতে পারেন। আপনার ssh কমান্ডে '-oPasswordAuthentication = না' যুক্ত করুন।
কাস

7
এটি পাসওয়ার্ড প্রম্পটকে বাধা দেয় না। ওপির স্ক্রিপ্টটি এখনও স্তব্ধ থাকবে।
জোশুয়া

11

আপনি যদি ড্রপবার ব্যবহার করছেন তবে -sপাসওয়ার্ড প্রমাণীকরণ অক্ষম করতে বিকল্প " " যোগ করুন ।


4
ক্লায়েন্টকে ধরে না নেওয়ার জন্য +1 ওপেনশ :-)
কাস

8

কমান্ড লাইনে (বা ~/.ssh/config) আপনি সেট করতে পারেন PreferredAuthentications

PreferredAuthentications=publickey

আমি মনে করি যে, কমান্ড লাইনে আপনাকে উদ্ধৃতিগুলিতে বিকল্পটি আবদ্ধ করতে হবে এবং তারপরে এটি -o বিকল্পে পাস করতে হবে।
ক্রেগ ওয়াকার

3
@ ক্রেইগওয়াকার আপনি এটি যেমন পাস করতে পারেন, যেমনssh -o PreferredAuthentications=publickey
টোবিয়াস কেইনজলার

@ ক্রেইগওয়াকার যদি আপনার বিকল্পগুলি এবং মান পৃথক করতে স্পেস ব্যবহার করতে চান তবে আপনার উদ্ধৃতিগুলি দরকারssh "-oPreferredAuthentications publickey"
টিমো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.