Я попробовал решение @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
.
person
Nikola Ivanov Nikolov
schedule
08.03.2014