แม้ว่าเอเจนต์จะพร้อมใช้งานหากไม่ได้ตั้งค่าตัวแปรสภาพแวดล้อมบางอย่างคุณจะไม่มีการอ้างอิงถึงเอเจนต์ นอกจากนี้แม้ว่าจะโอเคเอเจนต์และตัวแปรทั้งหมดจะไม่ถูกส่งไปยังเอเจนต์โดยอัตโนมัตินั่นคือภารกิจสำหรับssh-askpass
ทำงานในช่วง X เท่านั้น
หากคุณกำลังใช้ bash ให้สร้างไฟล์ที่~/.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'