Навіть якщо агент працює, якщо певні змінні середовища не встановлені, ви не маєте посилання на агент. Крім того, навіть якщо це все добре, агент та змінні, ідентифікація автоматично не надсилається агенту: це завдання для 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
Останнє зауваження: це не заважає сесії gnome, тому що в такому випадку використовується лише ~/.profile
джерело, і ви можете скористатися ssh-askpass
графічним інтерфейсом, який запитує парольну фразу та надсилає її до ssh-agent
.
ssh-agent
працює:ps -ef | grep '[s]sh-agent'