Я установил последнюю версию OpenSSH на OS X с помощью homebrew. Согласно инструкциям вформула, я отредактировал org.openbsd.ssh-agent.plist
файл, чтобы он указывал на /usr/local/bin/ssh-agent
, а также добавил следующее в свой .zshrc
:
eval $(ssh-agent)
function cleanup {
echo "Killing SSH-Agent"
kill -9 $SSH_AGENT_PID
}
trap cleanup EXIT
Однако это означает, что если у меня естьноткрытые вкладки терминала, у меня естьнзапущенные ssh-agent
процессы. Это необходимо? Мне ведь нужен только один экземпляр ssh-agent, работающий в любой момент времени?
решение1
В оригинальной инструкции говорится, что эти строки нужно поместить в ваш .bash_profile
. Это означает, что они выполняются только дляавторизоватьсяоболочки. Оболочка внутри обычного терминала обычно не являетсяавторизоватьсяоболочка, отсюда иssh-agnetзапускается только один раз.
Соответствующий rc-файл для zsh — ~/.zprofile
. Поэтому поместите эти строки не в ~/.zshrc
, а в ~/.zprofile
---и вуаля.
Если вы хотите узнать больше оавторизоваться,интерактивныйи т. д. оболочки, посмотрите страницы руководства оболочки, прочитайтеэтот ответ на UnixSEилимой ответ на другой вопрос.