খুব অদ্ভুত সমস্যা হচ্ছে। আমি একটি ছোট বাশ স্ক্রিপ্ট তৈরি করেছি যা ssh (সার্বজনীন কী প্রমাণীকরণ ব্যবহার করে) এর মাধ্যমে দূরবর্তী হোস্টে একটি কমান্ড চালায়।
আমি যখন এই স্ক্রিপ্টটি কমান্ড লাইন থেকে ম্যানুয়ালি চালিত করি এটি ঠিকঠাক কাজ করে তবে /etc/cron.hourly এ রাখলে এটি Permission denied, please try again.ত্রুটির সাথে ব্যর্থ হয় ।
- আমি স্ক্রিপ্টে স্পষ্টভাবে কীটি সেট করে ব্যবহার করেছি
ssh -i /root/.ssh/id_rsa user@remote "command"; - স্ক্রিপ্টটি রুট হিসাবে চলছে (আমি
echo `id` > /tmp/whoami.logডাবল- চেকটিতে একটি যুক্ত করেছি ); এবং - ssh কী পাসওয়ার্ড সুরক্ষিত নয় ...
সিস্টেমটি উবুন্টু 12.04 সার্ভার, সমস্যা সমাধানের জন্য আমার কাছে দূরবর্তী দিকের খুব বেশি অ্যাক্সেস নেই, তবে আমি যেমন বলেছি, ssh ম্যানুয়ালি চালানো বা কমান্ড-লাইন থেকে একই বাশ স্ক্রিপ্টটি কাজ করে।
কেন এমন হচ্ছে বা কীভাবে এটি ঠিক করবেন এর কোন ধারণা ??
হালনাগাদ
দেখা যাচ্ছে যে আমার ভুল হয়েছে এবং ssh কীটি পাসওয়ার্ড সুরক্ষিত ছিল (কীচেইন এসএস-এজেন্ট লোড সহ) তাই বাশ সেশন থেকে চলাকালীন কেন এটি স্ক্রিপ্ট থেকে ব্যর্থ হয়েছিল। . ~/.keychain/$HOSTNAME-shআমার স্ক্রিপ্টে যুক্ত করা সমস্যার সমাধান করেছে (@ গ্রায়েটিকে ধন্যবাদ যারা আমাকে সঠিক দিকে নির্দেশ করেছেন এবং একটি বিস্তৃত উত্তর দিয়েছেন)।
SSH_AUTH_SOCKসম্পর্কিত তা নিশ্চিত না (যদিও আমি কিছু চেষ্টা করে খুশি)। আমি সরাসরি কী ফাইলটি অ্যাক্সেস করছি এবং কী ফাইলটি পাসওয়ার্ড সুরক্ষিত নয়। হিসাবে KRB5CCNAMEএকটি দ্রুত অনুসন্ধান দেখিয়েছেন এই কার্বারোস কি কিছু নেই। আবার - এই সমস্যার সংযোগটি দেখতে পাবেন না, তবে সম্ভবত আমি এখানে কিছু মিস করছি ...
-vসেই sshকমান্ডটিতে একটি বিকল্প যুক্ত করেন তবে এটি আরও ভাল হবে ...
ssh -iউভয় ক্ষেত্রেই স্পষ্টভাবে কমান্ড ব্যবহার করে কীটি ব্যবহার করব ... আমি স্ক্রিপ্টে সেই পরিবর্তনগুলি আনসেট করার চেষ্টা করব এবং দেখব। যোগ করার জন্য ভাল পরামর্শ -v- আমি এটিও যুক্ত করব।
SSH_AUTH_SOCKএবংKRB5CCNAMEপরিবেশের পরিবর্তনশীলগুলির পরে আবার পরীক্ষা করুন ।