এমনকি এজেন্ট থাকলেও, যদি নির্দিষ্ট পরিবেশের ভেরিয়েবল সেট না করা থাকে তবে আপনার এজেন্টের কোনও রেফারেন্স নেই। তদুপরি, এটি সমস্ত ঠিক আছে, এজেন্ট এবং ভেরিয়েবলগুলি থাকলেও পরিচয়টি স্বয়ংক্রিয়ভাবে এজেন্টকে প্রেরণ করা হয় না: এটি ssh-askpass
কেবল এক্স সেশনে কাজ করা, এটি একটি কাজ ।
আপনি যদি ব্যাশ ব্যবহার ~/.bash_profile
করছেন তবে এই বিষয়বস্তু দিয়ে ফাইলটি তৈরি করুন :
# File: ~/.bash_profile
# source ~/.profile, if available
if [[ -r ~/.profile ]]; then
. ~/.profile
fi
# start agent and set environment variables, if needed
agent_started=0
if ! env | grep -q SSH_AGENT_PID >/dev/null; then
echo "Starting ssh agent"
eval $(ssh-agent -s)
agent_started=1
fi
# ssh become a function, adding identity to agent when needed
ssh() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/ssh "$@"
}
export -f ssh
# another example: git
git() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/git "$@"
}
export -f git
~/.ssh/id_dsa
আপনার প্রয়োজন অনুসারে ফাইলের নামটি সংশোধন করুন এবং এই লাইনটি এতে যুক্ত করুন~/.bash_logout
# stuff to add at end of ~/.bash_logout
if ((agent_started)); then
echo "Killing ssh agent"
ssh-agent -k
fi
একটি সর্বশেষ নোট: এটি কোনও জিনোম সেশনে হস্তক্ষেপ করবেন না কারণ সে ক্ষেত্রে কেবল ~/.profile
উত্সাহিত হয়, এবং আপনি ssh-askpass
গ্রাফিকাল ইন্টারফেস থেকে উপকার পেতে পারেন যা একটি পাসফ্রেজ জিজ্ঞাসা করে এবং এটিতে প্রেরণ করে ssh-agent
।
ssh-agent
চলছে কিনা তা যাচাই করে নিন :ps -ef | grep '[s]sh-agent'