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 -l
w zmiennej, aby poprawić wydajność (przynajmniej tak sądzę, poprawia to wydajność :))
PS: Jestem na Linuksie i ten kod poszedł do mojego ~/.bashrc
pliku - jeśli używasz Mac OS X, zakładam, że powinieneś dodać go do .zshrc
lub.profile
EDYCJA: Jak wskazał @Aaron w komentarzach, .zshrc
plik jest używany z zsh
powłoki - więc jeśli go nie używasz (jeśli nie jesteś pewien, najprawdopodobniej używasz bash
zamiast tego), ten kod powinien przejdź do swojego .bashrc
pliku.