অ ইন্টারেক্টিভ এসএসএইচ সেশন
যদি আপনার রিমোট সার্ভারে একটি ইন্টারেক্টিভ সেশনের প্রয়োজন না হয় তবে sshআপনি কোনও পরিবেশ ছাড়াই চালাতে পারেন tty, যেমন অটোমেটারে রান শেল স্ক্রিপ্ট ক্রিয়াকলাপের অংশ হিসাবে ।
আপনাকে এমন একটি প্রোগ্রাম তৈরি করতে হবে যা বলা হয়ে গেলে পাসওয়ার্ডটিকে স্ট্যান্ডার্ড আউট প্রিন্ট করে, যেমন: নিম্নলিখিত ব্যাশ স্ক্রিপ্টটি ব্যবহার করে আপনাকে এক্সিকিউটেবল করার প্রয়োজন chmod +x pwd.sh:
#!/usr/bin/env bash
echo "password"
তারপরে, SSH_ASKPASSএই প্রোগ্রামটির পথে পরিবেশের পরিবর্তনশীল সেট করুন এবং তারপরে sshঅটোমেটার ক্রিয়ায় এটি চালান :
export SSH_ASKPASS=/Users/danielbeck/pwd.sh
ssh user@hostname ls
যখন কোনও নেই tty, SSH_ASKPASSএবং এবং DISPLAY(এক্স 11 এর জন্য, ডিফল্ট দ্বারা সেট করা) সেট করা থাকে, এসএসএইচ দ্বারা নির্ধারিত প্রোগ্রামটি কার্যকর করে SSH_ASKPASSএবং তার আউটপুটটিকে পাসওয়ার্ড হিসাবে ব্যবহার করে। এটি গ্রাফিকাল পরিবেশে ব্যবহারের উদ্দেশ্যে, যাতে একটি উইন্ডো আপনার পাসওয়ার্ডের জন্য জিজ্ঞাসা করতে পপ আপ করতে পারে। এই ক্ষেত্রে, আমরা কেবল আমাদের প্রোগ্রাম থেকে পাসওয়ার্ডটি ফিরিয়ে দিয়ে উইন্ডোটি এড়িয়ে গেছি। পরিবর্তে আপনি securityআপনার কীচেন থেকে পড়তে ব্যবহার করতে পারেন :
#!/usr/bin/env bash
security find-generic-password -l password-item-label -g 2>&1 1>/dev/null | cut -d'"' -f2
ls( sshকমান্ড লাইনে) হ'ল sshলগ ইন করার পরে কার্যকর করা কমান্ড এবং এর আউটপুট অটোমেটারে মুদ্রিত হয়। আপনি, অবশ্যই, আপনার শুরু হওয়া প্রোগ্রামটির আউটপুট লগ করার জন্য এটি কোনও ফাইলে পুনর্নির্দেশ করতে পারেন।
ইন্টারেক্টিভ এসএসএইচ সেশনগুলি ব্যবহার করে sshpass
আমি ডাউনলোড, সংকলন এবং ইনস্টল করেছি sshpassএবং এটি পুরোপুরি কার্যকর হয়েছে। আমি যা করেছি তা এখানে:
- অ্যাপল বিকাশকারী সরঞ্জামগুলি পান
- ডাউনলোড করুন এবং খুলুন
sshpass-1.05.tar.gz
- ডিরেক্টরিতে একটি শেল খুলুন
sshpass-1.05
- চালান
./configure
- চালান
make
- চালান
make install(আপনার sudoএটির প্রয়োজন হতে পারে )
এখন প্রোগ্রামটি ইনস্টল করা আছে /usr/local/bin/sshpass। নিম্নলিখিতগুলির মতো একটি লাইন ব্যবহার করে কার্যকর করুন:
sshpass -pYourPassword ssh username@hostname
আপনি securityএটি করার আগে থেকেই পাসওয়ার্ডটি পড়তে পারেন এবং এটি ব্যবহার করুন:
SSHPASSWORD=$( security find-generic-password -l password-item-label -g 2>&1 1>/dev/null | cut -d'"' -f2 )
sshpass -p"$SSHPASSWORD" ssh username@hostname
এটি একটি শেল ফাংশনে আবদ্ধ করুন এবং আপনি ঠিক যেমন ssh-yourhostnameসংযোগ করতে টাইপ করতে পারেন , এটি পাসওয়ার্ড পুনরুদ্ধার করে এবং স্বয়ংক্রিয়ভাবে পাসওয়ার্ড প্রবেশ করিয়ে।
STDIN is not a terminal। 2) সাথে ইন্টারেক্টিভ সেশনগুলির জন্যsshpass,-pবিকল্পটি দৃশ্যত কিছু করে না। তবে নির্ধারিতsshpassসময়ে দৌড়ানোSSH_ASKPASSকি কাজ করে!