Я попробовал решение @ Aaron, и оно мне не помогло, потому что оно будет заново добавлять мои ключи каждый раз, когда я открываю новую вкладку в своем терминале. Поэтому я немного его изменил (обратите внимание, что большинство моих ключей также защищены паролем, поэтому я не могу просто отправить вывод в / dev / null):
added_keys=`ssh-add -l`
if [ ! $(echo $added_keys | grep -o -e my_key) ]; then
ssh-add "$HOME/.ssh/my_key"
fi
Что он делает, так это то, что он проверяет вывод ssh-add -l
(в котором перечислены все ключи, которые были добавлены) для определенного ключа, и если он не находит его, то он добавляет его ssh-add
.
Теперь, когда я в первый раз открываю свой терминал, меня спрашивают пароли для моих закрытых ключей, и меня больше не спрашивают, пока я не перезагружу (или выйду из системы - я не проверял) мой компьютер.
Поскольку у меня есть куча ключей, я сохраняю выходные данные ssh-add -l
в переменной для повышения производительности (по крайней мере, я предполагаю, что это улучшает производительность :))
PS: я нахожусь на Linux, и этот код пошел в мой ~/.bashrc
файл - если вы на Mac OS X, то я предполагаю, что вы должны добавить его в .zshrc
или.profile
РЕДАКТИРОВАТЬ: Как отметил @Aaron в комментариях, .zshrc
файл используется из zsh
оболочки - поэтому, если вы не используете это (если вы не уверены, то, скорее всего, вы используете bash
вместо этого), этот код должен перейти к вашему .bashrc
файлу.