Zainstalowałem mój prywatny klucz SSH ~/.ssh/id_rsa
i ustawiłem jego uprawnienia na 0600
. Kiedy łączę się z serwerem SSH, który używa mojego klucza prywatnego w Terminal.app za pośrednictwem ssh
, pojawia się okno dialogowe i prosi mnie o podanie hasła dostępu do id_rsa
pliku:
Widzę to samo okno dialogowe, gdy łączę się z serwerem FTP za pomocą klienta GUI Interarchy.
Aktualizacja: To okno dialogowe pojawia się za każdym razem, gdy się łączę, niezależnie od tego, czy zaznaczam „Zapamiętaj hasło w moim pęku kluczy”. Pojawia się jeszcze dwa razy po kliknięciu przycisku OK, bez względu na to, co wpisano w polu hasła.
Kiedy rozluźniam te uprawnienia, powiedzmy, 0640
nie widzę już okna dialogowego z pytaniem o moje hasło, ale ssh
przerywa się z następującym błędem:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @ OSTRZEŻENIE: NIEBEZPIECZNY PRYWATNY KLUCZOWY PLIK! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ Uprawnienia 0640 dla „/Users/myusername/.ssh/id_rsa” są zbyt otwarte. Zaleca się, aby pliki kluczy prywatnych NIE były dostępne dla innych. Ten klucz prywatny zostanie zignorowany. złe uprawnienia: zignoruj klucz: /Users/myusername/.ssh/id_rsa
Uważam, że okno dialogowe hasła jest bardzo denerwujące i jestem pewien, że musi istnieć jakiś sposób, aby uniknąć konieczności zamknięcia tego okna dialogowego SSH potrzebuje dostępu do id_rsa
pliku.
Uwaga: korzystam z systemu Mac OS X 10.6.8.
źródło
Najpierw uruchom
ssh-add -K
i sprawdź, czy to rozwiąże problem.Jeśli nie:
Usunięto plik rsa_id.pub i ponownie wygenerowano nowy (musi znajdować się w ~ / .ssh /):
Upewnij się, że uprawnienia zostały ustawione na 600 zarówno dla id_rsa, jak i id_rsa.pub (musi znajdować się w ~ / .ssh /):
Wykonano następujące polecenie:
Po wykonaniu tej czynności nie byłem już proszony o podanie hasła do mojego klucza prywatnego. Wydaje się, że faktycznie umieszcza hasło klucza prywatnego we właściwej lokalizacji pęku kluczy, z której może korzystać OS X.
źródło
chmod 600
(zamiast 644), aby to zadziałałossh-add -K
rozwiązałem mój problemW moim przypadku
ssh-add -K
nie załatwiłem sprawy, musiałem określić klucz:źródło
-K
już żadnej opcji. Twoje rozwiązanie to naprawiło. Zastanawiam się, dlaczego musiałem to zrobić. Nigdy nie otrzymałem żadnych monitów o podanie hasła.-K
flaga zadziałała dla mnie w Sierra 10.12.2W systemie macOS 10.12 Sierra
ssh-add -K
musi być uruchamiana po każdym ponownym uruchomieniu. Aby tego uniknąć, utwórz~/.ssh/config
przy użyciu tej zawartości.Firma Apple dodała notę techniczną 2449, która wyjaśnia, co się stało.
Edycja: Najwyraźniej określenie hosta i klucza nie jest konieczne. Wystarczy dodać to.
źródło
AddKeysToAgent
na najwyższym poziomie~/.ssh/config
.Musisz gdzieś wpisać hasło klucza prywatnego, a OS X domyślnie używa ssh-agent.
Jeśli chcesz użyć ssh-agent, ale chcesz uniknąć okna dialogowego GUI, możesz użyć ssh-add, aby dodać hasło do agenta, a następnie ssh jak zwykle.
Jeśli nie chcesz używać agenta ssh i zamiast tego wyświetlasz monit ssh o hasło, odznacz zmienną środowiskową SSH_AUTH_SOCK.
źródło
ssh-add -K
nie muszę wprowadzać hasła, aby się połączyć, ale nadal pojawia się monit; Po prostu to odrzucam.Po rozluźnieniu uprawnień klucz jest ignorowany. Dzięki temu nic nie zyskasz.
Jeśli chcesz użyć klucza bez konieczności każdorazowego wprowadzania hasła, masz dwie opcje.
Jeśli zaznaczysz „Zapamiętaj hasło w moim pęku kluczy”, nie będziesz musiał za każdym razem wpisywać hasła: będzie ono przechowywane w pęku kluczy razem ze wszystkimi innymi hasłami. To jest zalecana opcja.
Możesz utworzyć plik klucza prywatnego bez hasła. Możesz zmienić istniejący plik klucza prywatnego, aby nie był chroniony hasłem (zmiana hasła dotyczy tylko pliku klucza, a nie samego klucza). W wierszu polecenia uruchom
ssh -p
, wprowadź istniejące hasło, a następnie pozostaw nowe hasło puste. Posiadanie pustego hasła jest zagrożeniem bezpieczeństwa: każdy, kto może uzyskać dostęp do pliku klucza prywatnego (na przykład uzyskując dostęp do kopii zapasowych), może go natychmiast użyć.źródło
jeśli dodałeś swój klucz prywatny do źródłowego katalogu ~ / .ssh i podałeś ssh-add -K, aby dodać go do pęku kluczy, a zawartość klucza publicznego została skopiowana do .ssh / author_keys (dla poprawności konto) na serwerze docelowym okno dialogowe zniknie.
to skomplikowana kombinacja plików, uprawnień, lokalizacji i poleceń, więc może to zająć trochę czasu. nie spieszyłbym się z wnioskiem na temat błędów.
źródło
Mam dokładnie ten sam problem na Lionie (Mac OS X 10.7). Myślę, że to błąd ... Jeśli uwierzytelnianie ssh jest hasłem, klient najpierw przechodzi przez klucz publiczny, co jest normalne. Jednak nawet jeśli zdecydujesz się zapisać hasło na pęku kluczy (co nie jest wymagane do uwierzytelnienia hasła) następnym razem, gdy zostanie ustanowione nowe połączenie ssh, zostaniesz ponownie zapytany o hasło ...
źródło
Nie powinno być potrzeby ponownego generowania kluczy publicznych. Możesz po prostu wykonać te dwa polecenia:
Zasadniczo musisz zaostrzyć uprawnienia do pliku klucza publicznego i dodać swój klucz do agenta uwierzytelniania OSX.
źródło
W najnowszej wersji systemu macOS (10.12.2 - Sierra) jest to łatwa poprawka. Po prostu edytuj ~ / .ssh / config i włącz opcję UseKeychain:
Zapisz i rozwiązany.
źródło
Ten problem wystąpił w moim systemie OS X 10.7.4, gdy zmarł ssh-agent. Ponowne uruchomienie naprawiło problem. (Możesz spróbować zrestartować ssh-agent, ale nie wiem, czy pęku kluczy jest wystarczająco sprytny, aby podnieść nowe gniazdo ssh-agent).
źródło
Upewnij się, że ~ / .ssh / to chmod 700.
Upewnij się, że oba pliki ~ / .ssh / id * są chmod 600.
Uruchom / Aplikacje / Narzędzia / Keychain Access.app i napraw brelok.
Wyloguj. (Ponowne uruchomienie nie byłoby strasznym pomysłem)
Zaloguj sie
Jeśli problem będzie się powtarzał, przenieś istniejące pliki ~ / .ssh / id * na pulpit i spróbuj wygenerować nowe klucze za pomocą
ssh-keygen -t dsa -f ~/.ssh/id_dsa -C [email protected]
i sprawdź, czy nowe klucze działają lepiej.Jestem na Lionie, ale IIRC Snow Leopard działał w ten sam sposób.
ps - każdy, kto sugeruje użycie pustego hasła ssh, powinien być zmuszony do noszenia znaku, aby inni wiedzieli, że nie powinni od nich korzystać.
źródło
Ponowne wygenerowanie klucza publicznego nie działa dla mnie (10.8), podobnie jak generowanie nowego klucza SSH. Jeśli na przykład uruchomię git pull po zablokowaniu pęku kluczy logowania, pojawi się okno dialogowe z żądaniem hasła do klucza zamiast pierwszej próby odzyskania hasła z pęku kluczy logowania.
Jeśli jednak najpierw zabiję agenta ssh, zostanie wyświetlony monit o hasło pęku kluczy logowania, które następnie pobierze hasło klucza SSH.
źródło
Innym interesującym odkryciem jest to, że jeśli skopiujesz i wkleisz zawartość pliku PEM, możesz nie mieć kreski w końcówce. Pamiętaj więc, aby dodać ostatnią linię jako,
źródło
Musiałem wykonać następujące kroki, aby to zadziałało.
Ostateczne polecenie powinno następnie wypisać coś takiego:
Hi <user>! You've successfully authenticated, but GitHub does not provide shell access.
źródło
Miałem ten sam problem. Wydaje mi się, że to naprawiłem.
1) Utworzono kopię zapasową, zmieniając nazwę na stare pliki id_dsa i id_dsa.pub.
2) Uruchomił nowy keygen z pustym hasłem.
Współpracuje z zadaniem okresu uruchamiania monitorowania zdalnego serwera, a także logowania się z ssh w terminalu.
Mam szybką funkcję authme w moim terminalu, ponieważ mam następujące w moim .bash_profile
Tak więc szybki authme remoteserver.com skopiuje nowy klucz zdalny.
Myślę, że błąd ma związek z tym, że hasło nie zostało przekonwertowane (mój stary Snow Leopard w ogóle go nie miał).
Spróbuj i sprawdź, czy to pomoże.
Nie zajęło to więcej niż 10 minut. Zawsze spędzałem googlowanie, aby sprawdzić, czy są jakieś inne wzmianki na ten temat. Ta strona była jedyna!
Owain.
źródło
Miałem podobny problem. Okazało się, że klucz prywatny, którego używałem, był w niewłaściwym formacie. Użyłem PuTTY Key Generator na moim komputerze Win i ssh w OS X oczekuje innego formatu - formatu Open SSH.
Okazało się, że narzędzie, którego użyłem do wygenerowania tego klucza (PuTTY Key Generator) miało opcję konwersji mojego klucza prywatnego na format wymagany przez Open SSH.
Proste jak:
Zapisany plik zawiera oryginalny klucz prywatny w odpowiednim formacie (OpenSSH).
źródło
Proszę upewnij się że:
Mam nadzieję, że powinno to rozwiązać problem.
źródło
Użyj klucza .pem zamiast klucza .ppk.
źródło