আমি ssh এর সাথে একটি গিট পুশ প্রক্রিয়া স্বয়ংক্রিয় করতে ক্রোনটব করার জন্য সংগ্রাম করে যাচ্ছি, এবং এটি ssh এজেন্টের সাথে একটি কী সেটআপ করা কৃপণ প্রমাণ করছে। এজেন্ট পরীক্ষা করার জন্য একটি প্রাথমিক স্ক্রিপ্ট দিয়ে শুরু:
# set paths (all examples)
source /etc/profile
export PATH=$PATH:/Users/myusername/.ssh
eval "$(ssh-agent)" > ssh_agent.txt
/usr/bin/ssh-add -l >> ssh_agent.txt
.. যা নিম্নলিখিত আউটপুট:
Agent pid 16062
The agent has no identities.
সুতরাং এজেন্ট সক্রিয়। কীটি যুক্ত করতে এবং এটি এজেন্টের সাথে নিবন্ধীকৃত পরীক্ষা করতে। আইটার্ম 2 এ ম্যানুয়ালি এটি ঠিকঠাক কাজ করে:
/usr/bin/ssh-add /Users/myusername/.ssh/id_rsa
2048 [key fingerprint] /Users/myusername/.ssh/id_rsa (RSA)
আমি এই স্ক্রিপ্টটি ব্যবহার করে ক্রোনটব কাজের ভিতরে এটি প্রতিলিপি করার চেষ্টা করব:
/usr/bin/ssh-add /Users/myusername/.ssh/id_rsa
/usr/bin/ssh-add -l >> ssh_agent.txt
.. The agent has no identities
যা ফাইল করতে রিপোর্ট করে, এবং নিম্নলিখিতগুলির মাধ্যমে "You have mail in /var/mail/myusername"
:
[email metadata]
Enter passphrase for /Users/myusername/.ssh/id_rsa:
সুতরাং কীটি লোড করার চেষ্টা করছে তবে পাসফ্রেজ প্রম্পটে ধরা হচ্ছে। এখানে আমি ব্যবহার করতে চান expect
এই বর্ণনা অনুযায়ী, এটা পাসফ্রেজ দিতে unix.stackexchange উত্তর (যা মনে হচ্ছে ওএসএক্স মধ্যে কাজ করা উচিত):
#!/usr/bin/expect -f
/usr/bin/ssh-add /Users/myusername/.ssh/id_rsa
expect "Enter passphrase for /Users/myusername/.ssh/id_rsa:"
send "mypassphrase\n";
interact
মেল ত্রুটির প্রতিক্রিয়াটি হ'ল:
Enter passphrase for /Users/myusername/.ssh/id_rsa:
couldn't read file "Enter passphrase for /Users/myusername/.ssh/id_rsa:": no such file or directory
/Users/myusername/test/crontest.sh: line 17: send: command not found
/Users/myusername/test/crontest.sh: line 18: interact: command not found
সুতরাং আমি এই এসও উত্তরের ভিত্তিতে একটি বিকল্প কনফিগারেশন চেষ্টা করেছি :
#!/usr/bin/expect -f
expect -c "
/usr/bin/ssh-add /Users/myusername/.ssh/id_rsa
expect \"Enter passphrase for /Users/myusername/.ssh/id_rsa: \"
send \"mypassphrase\n\";
interact
"
.. এবং নিম্নলিখিত মেইল ত্রুটি রিপোর্ট পান:
invalid command name "/usr/bin/ssh-add"
while executing
"/usr/bin/ssh-add /Users/myusername/.ssh/id_rsa"
Could not open a connection to your authentication agent.
আমি এখানে সমস্যাটি বুঝতে পারি না - ssh এজেন্ট কাজ করে এবং কীটি অ্যাক্সেসযোগ্য বলে মনে হচ্ছে তাই এই 'সংযোগ' সমস্যাটি কী? আমি expect
সাফল্য ছাড়া অন্য কনফিগারেশন চেষ্টা করেছি । সহায়তার জন্য অত্যন্ত কৃতজ্ঞ।
eval "$(ssh-agent)"
কার্যকারী স্ক্রিপ্টে অন্তর্ভুক্ত করা দরকার কারণ এটি এজেন্টকে প্রকৃতপক্ষে শুরু করে ।