Wypróbowałem rozwiązanie @ Aaron i to nie do końca działało, ponieważ dodawało moje klucze za każdym razem, gdy otwierałem nową kartę w moim terminalu. Więc trochę go zmodyfikowałem (zauważ, że większość moich kluczy jest również chronionych hasłem, więc nie mogę po prostu wysłać danych wyjściowych do / dev / null):
added_keys=`ssh-add -l`
if [ ! $(echo $added_keys | grep -o -e my_key) ]; then
ssh-add "$HOME/.ssh/my_key"
fi
W ten sposób sprawdza dane wyjściowe ssh-add -l(które zawierają wszystkie klucze, które zostały dodane) dla określonego klucza, a jeśli go nie znajdzie, dodaje go za pomocą ssh-add.
Teraz, kiedy otwieram terminal po raz pierwszy, pojawia się pytanie o hasło do moich kluczy prywatnych i nie pojawia się ono ponownie, dopóki nie zrestartuję komputera (lub wyloguję się - nie sprawdziłem).
Ponieważ mam kilka kluczy, przechowuję dane wyjściowe ssh-add -lw zmiennej, aby poprawić wydajność (przynajmniej tak sądzę, poprawia to wydajność :))
PS: Jestem na Linuksie i ten kod poszedł do mojego ~/.bashrcpliku - jeśli używasz Mac OS X, zakładam, że powinieneś dodać go do .zshrclub.profile
EDYCJA: Jak wskazał @Aaron w komentarzach, .zshrcplik jest używany z zshpowłoki - więc jeśli go nie używasz (jeśli nie jesteś pewien, najprawdopodobniej używasz bashzamiast tego), ten kod powinien przejdź do swojego .bashrcpliku.