Kiedyś pamiętał hasło, ale teraz pyta mnie za każdym razem.
Przeczytałem, że muszę ponownie wygenerować klucz publiczny za pomocą tego polecenia, co zrobiłem:
ssh-keygen -y -f id_rsa > id_rsa.pub
ale nic nie naprawiło.
Jak sprawić, by system macOS ponownie zapamiętał moje hasło?
ssh
włączonego modułuzpretzorc
. W systemie macOS i tak nie jest to konieczne, a jeśli jest włączone, poprosi o podanie hasła nawet po dodaniuUseKeychain
.ssh -v ...
sprawdzić, czy ma jakieś przydatne informacje debugowania ...Odpowiedzi:
W najnowszej wersji systemu macOS (10.12.2) można to łatwo naprawić. Po prostu edytuj
~/.ssh/config
i włączUseKeychain
opcję:Nie trzeba zmieniać niczego innego. Teraz wszystko działa tak, jak kiedyś przed najnowszymi aktualizacjami. Nie musisz dodawać kluczy do
ssh-agent
.Edycja: Może być konieczne jednokrotne wprowadzenie hasła. Jeśli nie wiesz, postępuj zgodnie z tymi instrukcjami, aby je ujawnić.
źródło
Host *
blok powinien (prawie) zawsze znajdować się na dole~/.ssh/config
pliku. Kiedyssh
szuka ustawień, wykorzystuje pierwszą znalezioną wartość. Tak więc, umieszczając blok symboli wieloznacznych na końcu, działa on jako zestaw wartości domyślnych; możesz zastąpić ustawienia określonych hostów, określając je wcześniej w pliku.Host *
nagłówka. Wystarczy dołączyć pojedynczą linięUseKeychain yes
u góry,.ssh/config
jeśli chcesz, aby dotyczyła wszystkich hostów.Miałem ten sam problem. Brelok MacOS Sierra wciąż pyta o hasło. Twój identyfikator powinien być zaszyfrowany za pomocą hasła dla bezpieczeństwa. Następnie spróbuj dodać go do pęku kluczy
ssh-add -K ~/.ssh/id_rsa
Jeśli klucz znajduje się w innym folderze,
~/.ssh
zastąp właściwy folder.Keychain zna teraz twój klucz ssh i, mam nadzieję, wszystkie działa teraz (moje zrobiły)
źródło
ssh-add
z tą-A
opcją będzie szukać w pęku kluczy MacOS wszelkich haseł dla danych tożsamości. Wierzę, że pojawi się monit, jeśli hasła nie ma w pęku kluczy.To naprawiło mój podobny problem:
Przechowuje hasła w twoim pęku kluczy.
Aktualizacja (dzięki @EasyCo): Działa, ale nie utrzymuje się między restartami. @ rozwiązanie Jukka-suomela na tej stronie nie działa w poprzek uruchomieniu. Możesz znaleźć tę odpowiedź tutaj:
https://superuser.com/a/1158050/234685
źródło
Musiałem tylko raz wprowadzić poprawne hasło i zaczęło działać. Problem polegał na tym, że nie pamiętałem mojego oryginalnego hasła SSH, ale odzyskałem je, wykonując następujące kroki z Github:
źródło
Żadne z powyższych rozwiązań nie działało po zainstalowaniu Sierra nad El Capitan na nowym MacBooku Pro. Sierra z założenia nie zapisuje kluczy SSH w pęku kluczy.
Dwa rozwiązania działały dla mnie. Jednym z nich jest dodanie polecenia
ssh-add -A &> /dev/null
do ~ / .bash_profile. Za każdym razem, gdy otwierasz terminal, polecenie to zostanie wykonane (&> /dev/null
część wysyła wynik polecenia do pliku / dev / null).Bardziej skomplikowanym, ale nieco mniej skomplikowanym rozwiązaniem jest utworzenie listy z poleceniem, które jest uruchamiane przy każdym uruchomieniu systemu operacyjnego, zgodnie z sugestią Zapisywanie kluczy SSH w pęku kluczy macOS Sierra . Wymaga to użycia Xcode do utworzenia pliku.
źródło
Jedną z poprawek jest dodanie następujących rzeczy do pliku ~ / .ssh / config:
Zaczerpnięte z: https://www.reddit.com/r/osx/comments/52zn5r/difficulties_with_sshagent_in_macos_sierra/ Zobacz także: https://apple.stackexchange.com/a/264974/3810
źródło
Bad configuration option: usekeychain
błędzie, który otrzymuję przy użyciu UseKeychain (jednak jest to wielkie litery). Ale był w stanie dostać pracy poprzez usunięcie tylko tej linii i pozostawiając AddKeysToAgent i IdentityFile (trzeba jeszcze wprowadzić hasło po raz pierwszy). Dotyczy to systemu macOS Sierra 10.12.6.which ssh
aby upewnić się, że używasz,/usr/bin/ssh
a nie wersji Fink lub MacPorts, co byłoby pod czymś/usr/local/bin/ssh
lub/opt/local/bin/ssh
Dziś rano miałem taki sam problem jak ty po aktualizacji do Sierra. W moim przypadku
id_rsa
plik został zaszyfrowany i po odszyfrowaniu działał jak urok.id_rsa
plik jest zaszyfrowany za pomocą następującego polecenia:cat ~/.ssh/id_rsa | head -2
Proc-Type: 4,ENCRYPTED
, że jest zaszyfrowana i możesz spróbować ją odszyfrowaćid_rsa
pliku! Użyj poleceniacp ~/.ssh/id_rsa ~/.ssh/id_rsa.bak
openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa.decrypted
rm ~/.ssh/id_rsa
) i zastąp go odszyfrowanym:mv ~/.ssh/id_rsa.decrypted ~/.ssh/id_rsa
Po wykonaniu tych kroków powinieneś być w stanie ponownie użyć ssh.
źródło
Próbowałem tutaj wielu odpowiedzi, ale nadal miałem problemy ze zdalnym przekazywaniem kluczy (na przykład podczas używania capistrano). Aby to rozwiązać, przeczytałem notatkę techniczną z firmy Apple i utworzyłem ten plik konfiguracyjny. Nigdy więcej pytania o moje hasło!
https://developer.apple.com/library/content/technotes/tn2449/_index.html
źródło
Miałem ten problem również podczas próby wdrożenia kodu za pomocą Capistrano . Bardzo frustrujące. Oto dwie znane mi metody radzenia sobie z tym problemem.
Metoda 1: Dodaj wszystkie znane klucze do agenta SSH.
Jednym z rozwiązań, które znalazłem, jest uruchomienie
ssh-add
z-A
opcją - która dodaje wszystkie znane tożsamości do agenta SSH przy użyciu dowolnych haseł przechowywanych w pęku kluczy - w ten sposób:Teraz to działa, ale nie będzie trwało po ponownym uruchomieniu komputera. Jeśli więc nie chcesz się już o to martwić, po prostu otwórz
~/.bash_profile
plik użytkownika w następujący sposób:I dodaj tę linię na dole:
Teraz, gdy otworzysz nowe okno Terminalu, wszystko powinno być dobrze!
Metoda 2: Dodaj do agenta tylko klucze SSH znajdujące się w pęku kluczy .
Tak więc, chociaż ta
ssh-add -A
opcja powinna działać w większości podstawowych przypadków, ostatnio natknąłem się na problem, w którym miałem 6-7 Vagrant boxów (które używają kluczy SSH / tożsamości do dostępu) na komputerze na bardziej powszechnymid_rsa.pub
miejscu.Krótko mówiąc, ostatecznie zostałem zablokowany na zdalnym serwerze z powodu zbyt wielu nieudanych prób opartych na kluczach / tożsamościach SSH, ponieważ dostęp do serwera był oparty na haśle, a klucze / tożsamości SSH są kluczami / tożsamościami SSH. Więc agent SSH wypróbował wszystkie moje klucze SSH, nie powiodło się i nie mogłem nawet dostać się do monitu o hasło.
Problem polega na tym,
ssh-add -A
że po prostu arbitralnie doda każdy klucz SSH / tożsamość, którą masz do agenta, nawet jeśli nie jest to konieczne; tak jak w przypadku pudeł Vagrant.Moje rozwiązanie po wielu testach było następujące.
Po pierwsze, jeśli masz więcej kluczy / tożsamości SSH dodanych do agenta, niż potrzebujesz - jak pokazano za pomocą,
ssh-add -l
następnie usuń je wszystkie z agenta w następujący sposób:Po wykonaniu tej czynności uruchom agenta SSH jako proces działający w tle:
Teraz robi się dziwnie i nie jestem pewien, dlaczego. W niektórych przypadkach możesz specjalnie dodać
~/.ssh/id_rsa.pub
klucz / tożsamość do agenta w następujący sposób:Wpisz swoje hasło, naciśnij Returni powinieneś być gotowy.
Ale w innych przypadkach wystarczy uruchomić to, aby dodać klucz / tożsamość:
Jeśli to wszystko działało, wpisz
ssh-add -l
i powinieneś zobaczyć jeden samotny klucz / tożsamość SSH na liście.Wszystko dobrze? Teraz otwórz swoje
.bash_profile
:I dodaj tę linię na dole; skomentuj lub usuń
-A
wersję, jeśli ją masz:Umożliwi to ponowne załadowanie klucza / tożsamości SSH do agenta SSH przy każdym uruchomieniu / ponownym uruchomieniu.
AKTUALIZACJA: Apple dodał teraz
UseKeychain
opcję do otwartych opcji konfiguracji SSH i rozważassh-add -A
również rozwiązanie.Począwszy od macOS Sierra 10.12.2, Apple (zakładam) dodał
UseKeychain
opcję konfiguracji dla konfiguracji SSH. Sprawdzanie strony podręcznika (przezman ssh_config
) pokazuje następujące informacje:Sprowadza się to do tego, że Apple widzi rozwiązanie jako albo dodanie
ssh-add -A
do twojego,.bash_profile
jak wyjaśniono w tym bilecie Open Radar, lub dodanieUseKeychain
jako jednej z opcji na użytkownika~/.ssh/config
.źródło
Jukka Suomela „s odpowiedź jest poprawna, ale jeśli używasz
openssh
zainstalować zhomebrew
, wtedy trzeba także odinstalować go z:... aby powrócić do domyślnego systemu openssh, ponieważ ten homebrew nie obsługuje
UseKeychain
wpisu konfiguracji ssh.źródło
Wypróbowałem wszystkie sugerowane tutaj rozwiązania, ale nie mam skonfigurowanego pęku kluczy na moim komputerze Mac.
Dodanie do następującego wiersza u góry
.ssh/config
pliku na komputerze lokalnym i zdalnym działało dla mnie.źródło
Musisz
.plist
dodać plik,~/Library/LaunchAgents/
aby działałssh-add -A
przy każdym uruchomieniu systemu macOS.Jest to jedno polecenie, które to robi (z kluczy SSH-in-macOS-Sierra-keychain ), które jest:
źródło