এসএসএইচ এর মাধ্যমে সংযুক্ত হন এবং পাবলিক কী ব্যবহার না করে স্বয়ংক্রিয়ভাবে পাসওয়ার্ড টাইপ করুন


20

একটি সার্ভার এসএসএইচ সংযোগগুলিকে অনুমতি দেয় তবে পাবলিক কী প্রমাণীকরণ ব্যবহার করে না। এই মুহুর্তে এটি পরিবর্তন করা আমার ক্ষমতার মধ্যে নেই (প্রযুক্তিগত অসুবিধার কারণে, সাংগঠনিক নয়) তবে আমি যত তাড়াতাড়ি সম্ভব এটির পদক্ষেপ নেব!

আমার এখন যা দরকার তা হ'ল স্ক্রিপ্ট থেকে সরল পুরানো অ্যাকাউন্ট + পাসওয়ার্ড প্রমাণীকরণ ব্যবহার করে সার্ভারে কমান্ডগুলি কার্যকর করা । এটি হ'ল আমাকে এটি একটি ইন্টারঅ্যাক্টিভ পদ্ধতিতে করা দরকার। এটা কি সম্ভব? এবং আমি এটা কিভাবে করব?

স্ক্রিপ্টটি কার্যকর করতে সক্ষম ক্লায়েন্টটি উবুন্টু সার্ভার 8.04 চালায়। সার্ভারটি সাইগউইন এবং ওপেনএসএসএইচ চালায়।


2
কী-ভিত্তিক প্রমাণীকরণ সক্ষম করার ক্ষেত্রে প্রযুক্তিগত সমস্যাগুলি কী কী? পরিবর্তে আপনার এই প্রশ্নটি জিজ্ঞাসা করা উচিত, বা এটি ছাড়াও।
জোরডাচি

1
আমি এটা জিজ্ঞাসা করছি। :-) serverfault.com/questions/125842/… আমার আপাতত একটি পালানোর পথ দরকার, যেহেতু আমি কিছুক্ষণের জন্য সেইটার উপরে মাথা ঠেকিয়ে চলেছি । তবে অবশ্যই আমার লক্ষ্য এটি দীর্ঘমেয়াদে কাজ করা।
মুছে ফেলা হয়েছে

উত্তর:


22

একটি লিনাক্স ইউটিলিটি বলা হয় sshpass। এটি আপনাকে যা করতে চাইবে ঠিক তা করতে দেয় এবং একটি সার্ভারের পাসওয়ার্ডকে কমান্ড লাইন আর্গুমেন্ট হিসাবে গ্রহণ করবে, বা কোনও ফাইল থেকে (আমি এইভাবে পছন্দ করি, সুতরাং শেল ইতিহাসে আমার সার্ভারের পাসওয়ার্ডটি উপস্থিত নেই) এবং আপনি এটি ব্যবহার করেন তাই ভালো:

sshpass -f file_with_password ssh user@server ls -la

এটি একটি সার্ভারে ssh করে চালানো হবে ls -la। তবে একটি জিনিস আপনাকে প্রথমে ম্যানুয়ালি প্রথমে একটি সার্ভারে প্রবেশ করতে হবে (যদি আপনি ইতিমধ্যে এটি না করে থাকেন), তাই সার্ভারটি এতে যুক্ত হয়ে যায় ~/.ssh/known_hosts। আপনি যদি তা না করেন, sshpassকাজ করবে না।


2
এটি ওপেনএসএইচ-এর একটি স্ট্যান্ডার্ড অংশ নয় এবং আক্ষরিক অর্থে আমার কোনও মেশিনই নেই (ম্যাক ওএস এক্স 10.7, উবুন্টু 12.04, ফ্রিবিএসডি 8,
দেবিয়ান

@ voretaq7: sshpass একটি সোর্সফোর্জ প্রকল্প: sourceforge.net/projects/sshpass
kevinarpe

1
@ কেসিআরপি আমি মনে করি আপনি আমার বক্তব্যটি মিস করেছেন ("পুরো পৃথিবীটি আপনার লিনাক্স মেশিন নয় - অন্য জায়গায় কাজ করে এমন সমাধানগুলি বেছে নেওয়ার চেষ্টা করুন")। SSH_ASKPASSভেরিয়েবলটি ব্যবহার করা একটি আরও সাধারণ সমাধান যা ওপেনএসএসএইচ সহ যে কোনও সিস্টেমে কাজ করে এবং অতিরিক্ত সফ্টওয়্যার ইনস্টল করার প্রয়োজন হয় না doesn't আমাদের মধ্যে কারও জন্য (নিয়ন্ত্রিত শিল্পে) নতুন সফ্টওয়্যার ইনস্টল করা অনেকগুলি প্রশাসনিক কাজকে ট্রিগার করে।
voretaq7

@ voretaq7 ব্যবহার SSH_ASKPASSকরা সমস্ত সিস্টেমে কাজ করে না। এমনকি ক্লায়েন্ট যদি এটি সমর্থন করে তবে সার্ভার ব্যবহার করলে এটি কাজ করবে না keyboard-interactiveauthorized_keysবেশ কয়েকটি এম্বেড থাকা মেশিনে একটি ফাইল বিতরণ করার জন্য স্ক্রিপ্ট লেখার সময় আমি আসলে সেই সমস্যার মুখোমুখি হয়েছি ।
ক্যাস্পারড

8

আপনি এটি করতে প্রত্যাশা ব্যবহার করতে পারেন । স্পষ্টতই, এটি সুরক্ষা দৃষ্টিকোণ থেকে পছন্দনীয় নয়, কারণ এটির জন্য আপনাকে এমন একটি স্ক্রিপ্ট ব্যবহার করতে হবে যাতে আপনার পাসওয়ার্ডটি সরলরেখায় থাকে। (তবে আমি এই বিষয়টিকে বোকা করব না যেহেতু আপনি আপনার প্রশ্নে বলেছেন যে আপনি যত তাড়াতাড়ি পাবলিক কী প্রমাণীকরণ ব্যবহার করার পরিকল্পনা করছেন!)


দেখে মনে হচ্ছে এটি আমার সমস্যার সমাধান করবে! আমি আগামীকাল এটি পরীক্ষা করে দেখুন। এটি চূড়ান্ত সমাধান নয়, তবে এটি কিছুটা সুরক্ষা দেয়। যখন আমি এটি সম্পর্কে চিন্তা করি, যদি স্ক্রিপ্ট ব্যবহারকারী কেবল তখনই স্ক্রিপ্টটি পড়ার অনুমতি দেয়। তারপরে এটি আমার ব্যক্তিগত কী হিসাবে নিরাপদ হবে যা ফাইল সিস্টেম অনুমতি দ্বারা "কেবল" সুরক্ষিত। নাকি আমি কিছু মিস করেছি?
মুছে ফেলা হয়েছে

আমি আগামীকাল ফলাফল নিয়ে ফিরে আসব। :-) উত্তরের জন্য ধন্যবাদ!
মুছে ফেলা হয়েছে

মনে হচ্ছে এটি কাজ করে। তবে এই নির্দিষ্ট ক্ষেত্রে আইএমএইচও-র জন্য sshpass সহজ ছিল।
মুছে ফেলা হয়েছে

7

আপনি যে স্ক্রিপ্টের ভাষা ব্যবহার করেন তাতে কিছুটা নির্ভর করে। আমি পাইথনের প্রায় সমস্ত কিছুই এখন স্ক্রিপ্ট করেছি, যেখানে এটি একটি নন-ইস্যু। পাইস এবং প্যারামিকো উভয়ই আপনাকে কোনও গোলমাল ছাড়াই কেবল পাসওয়ার্ডের স্ক্রিপ্ট করতে দেয়।

যদি আপনি এটি (বা) sh স্ক্রিপ্টগুলি দিয়ে করতে চান এবং ওপেনএসএইচএস ব্যবহার করেন তবে এটি আরও শক্ত হয়ে যায়। ওপেনএসএইচ আপনাকে স্পষ্টভাবে কমান্ড লাইনে পাসওয়ার্ড রাখতে বাধা দেয় (যেমনটি সমস্ত ব্যবহারকারী কমান্ড লাইন দেখতে পারেন ps -feযা কিছু খারাপ ব্যবহার করে ) which এই ক্ষেত্রে আপনাকে ssh প্রোগ্রামের সাথে সরাসরি যোগাযোগ করতে হবে এবং দুটি বিকল্প থাকতে হবে:

  • আপনি প্রত্যাশার মতো কিছু ব্যবহার করে যথেষ্ট পরিমাণ সমর্থন কোড লিখতে পারেন।
  • আপনি এসএসএইচ_এএসকেপিএএস ভেরিয়েবলটি ব্যবহার করে একটি হ্যাক করেন, এটি আপনার পাসওয়ার্ড ফিরিয়ে দেওয়ার জন্য একটি অ্যাপ্লিকেশন কল করতে বলে এবং টার্মিনাল থেকে পড়া থেকে বাঁচাতে এটি সমস্ত ব্যাচের কাজ হিসাবে চালায়।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.