একক কমান্ড লাইনের মাধ্যমে ssh ওভার জিপিজি-এজেন্ট ব্যবহার করতে আমার সমস্যা হচ্ছে।
এখানে আমার কনফিগারেশন:
সার্ভার এ: ssh এর মাধ্যমে কমান্ডটি ট্রিগার করছে।
ssh user@serverB "sudo -E /path/to/script.sh"
সার্ভার বি: একটি পাসফ্রেজ স্বাক্ষর প্রয়োজন স্ক্রিপ্ট সম্পাদন।
সিস্টেম তথ্য: উবুন্টু 12.04
আমি সার্ভার বিতে জিপিজি-এজেন্ট সেটআপ করেছি, আমি এই কনফিগারেশনটিকে / home/user/.bashrc এ যুক্ত করেছি:
Invoke GnuPG-Agent the first time we login.
# Does `~/.gpg-agent-info' exist and points to gpg-agent process accepting signals?
if test -f $HOME/.gpg-agent-info && \
kill -0 `cut -d: -f 2 $HOME/.gpg-agent-info` 2>/dev/null; then
GPG_AGENT_INFO=`cat $HOME/.gpg-agent-info | cut -c 16-`
else
# No, gpg-agent not available; start gpg-agent
eval `gpg-agent --daemon --write-env-file $HOME/.gpg-agent-info`
fi
export GPG_TTY=`tty`
export GPG_AGENT_INFO
এখানে /home/user/.gnupg/gpg-agent.conf এ এজেন্টের কনফিগারেশনটি রয়েছে:
enable-ssh-support
#1 year cache support
default-cache-ttl 31536000
default-cache-ttl-ssh 31536000
max-cache-ttl 31536000
max-cache-ttl-ssh 31536000
#debug-all
সুতরাং এই কাজগুলি করার জন্য, আমি ssh এর মাধ্যমে সার্ভারবি'তে সংযুক্ত হয়েছি:
ssh user@serverB
জিপিজি-এজেন্ট শুরু হয়েছে, আমি স্ক্রিপ্টটিকে ম্যানুয়ালি ট্রিগার করব:
sudo -E /path/to/script.sh
তারপরে, জিপিজি-এজেন্ট আমাকে একটি পাসফ্রেজ জিজ্ঞাসা করবে, একবার আমি পাসফ্রেজ সেটআপ করলে আমি আবার স্ক্রিপ্টটি চালাতে পারি, এবং এটি প্যাশপ্রেস না জিজ্ঞাসা করে এটির কাজটি করে চলেছে।
আমার সমস্যাটি হ'ল, যখন আমি এটিকে দূর থেকে ট্রিগার করার চেষ্টা করি, যেমন:
ssh user@serverB "sudo -E /path/to/script.sh"
দেখে মনে হচ্ছে জিপিজি-এজেন্ট কাজ করছে না, কারণ স্ক্রিপ্টটি আমাকে পাসফ্রেজের জন্য জিজ্ঞাসা করে চলেছে।
সম্পাদনা:
সুডো পাসওয়ার্ড ছাড়াই স্ক্রিপ্টটি দূরে সরিয়ে দিতে এবং পরিবেশের ভেরিয়েবলগুলি রাখতে আমি নিম্নলিখিত বিষয়বস্তুগুলিকে /etc/sudoers.d/user এ যুক্ত করেছি:
user ALL=(ALL)NOPASSWD:SETENV:/path/to/script.sh
কোন ধারনা?
sudo
।