Sekalipun agen naik, jika variabel lingkungan tertentu tidak disetel, Anda tidak memiliki referensi ke agen. Selain itu, bahkan jika itu semua ok, agen dan variabel, identitas tidak secara otomatis dikirim ke agen: itu adalah tugas ssh-askpass, hanya bekerja dalam sesi X.
Jika Anda menggunakan bash, buat file ~/.bash_profiledengan konten ini:
# 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
modifikasi nama file ~/.ssh/id_dsasesuai kebutuhan Anda, dan tambahkan baris ini ke~/.bash_logout
# stuff to add at end of ~/.bash_logout
if ((agent_started)); then
echo "Killing ssh agent"
ssh-agent -k
fi
Catatan terakhir: ini tidak mengganggu sesi gnome, karena dalam kasus ini hanya ~/.profilebersumber, dan Anda bisa mendapatkan manfaat dari ssh-askpassantarmuka grafis yang meminta frasa sandi dan mengirimkannya ke ssh-agent.
ssh-agentberjalan:ps -ef | grep '[s]sh-agent'