Po aktualizacji do Fedory 23 uwierzytelnianie bez hasła (oparte na kluczu publicznym) nie działa już w SSH: podczas próby połączenia się z SSH do jakiegoś hosta, monituje o moje hasło na hoście zdalnym. Nie mogę zmusić go do używania mojego prywatnego klucza SSH. Wszystko działało dobrze z Fedorą 22.
Mój klucz publiczny to klucz DSA ( ~/.ssh/id_dsa.pub
). Używam OpenSSH 7.1 ( openssh-7.1p1-5.fc23.x86_64
).
Jak uzyskać uwierzytelnianie bez hasła, aby znów działało poprawnie?
ssh -Q
. To pytanie, jak rozwiązać problem z SSH. Znalazłem niektóre materiały na stronie superuser.com/q/962918/93541 i gdzie indziej pomocne w identyfikacji tego rozwiązania, ale tam odpowiedź opisuje sposób korzystaniassh -Q
i nie odpowiada na to pytanie (np. Nie wyjaśnia, jak to naprawić ten problem), więc moim zdaniem nie jest to duplikat. Ten w Unixie i Linuksie jest bardzo podobny; Chciałbym to wcześniej zobaczyć. Jeszcze raz dziękuję za linki!Odpowiedzi:
Jest to wynikiem aktualizacji do OpenSSH 7.0. Jak podają informacje o wydaniu OpenSSH 7.0 , „Obsługa kluczy hosta i użytkownika ssh-dss jest domyślnie wyłączona w czasie wykonywania”.
Rozwiązaniem jest dodanie następującego wiersza
~/.ssh/config
na każdym komputerze klienckim (na każdym komputerze, na którym działa klient SSH):Jeśli serwer używa OpenSSH 7.0 lub nowszego, musisz również dodać ten wiersz
/etc/ssh/sshd_config
na każdym serwerze.Alternatywnie możesz wygenerować całkowicie nowy klucz SSH i dodać go do pliku uprawnionego_kluczy na każdym serwerze, na którym kiedykolwiek chcesz się zalogować. Polecam używać RSA , aby uniknąć problemów z kompatybilnością. Nie polecam ECDSA, ponieważ najwyraźniej gnom- klucz -demon nie odbiera automatycznie kluczy SSH typu ECDSA.
Uwaga redakcyjna: Dlaczego ludzie OpenSSH wyłączyli klucze DSA? Nie wiem O ile jestem w stanie stwierdzić, nie ma nic złego w bezpieczeństwie kluczy DSA (ssh-dss). Strona internetowa OpenSSH twierdzi, że ssh-dss jest słaby, ale o ile mi wiadomo, 1024-bitowy ssh-dss nie jest słabszy niż 1024-bitowy RSA, a 1024-bitowe klucze RSA nie są wyłączone.
źródło
Moje dwa centy
Sugeruję, ponieważ edytowanie
.ssh/config
pliku, aby to umożliwić, wydaje się niezbyt dobrym pomysłemUtwórz nowy klucz, używając najnowszego narzędzia.
Następnie skopiuj nowy klucz publiczny (do schowka)
Zaloguj się ostatni raz , używając starego klucza:
Następnie uaktualnić
@host
„sauthorized_keys
plik, dodając nowe pubkey i wylogowaniepaste, a następnie Ctrl+D
Zaloguj się przy użyciu nowego klucza, używając domyślnej składni:
Następnie uaktualnić
@host
„sauthorized_keys
plik, przez usunięcie stary pubkey (używamsed -e 1d -i .ssh/authorized_keys
kiedy mój stary pubkey jest na linii1
tego pliku).Sugeruję uaktualnić serwer ssh, jeśli możesz.
Sprawdź, czy stary klucz już nie działa.
To nie musi działać ;-)
Możesz nawet ponownie sprawdzić, czy wszystko jest w porządku:
źródło
~/.ssh/config
nie jest tak dobrym pomysłem.~/.ssh/config
ale raczej zgody na DSA. Dziękuję za wyjaśnienie. To ma sens. (Myślę, że już odpowiedziałem w mojej odpowiedzi i komentarzach, dlaczego uważam to zalecenie za zastanawiające, ale nie będę próbował tutaj o tym dyskutować.).config
pozwala na wykonywaniessh
przez długi czas, a nawet mgliste, że używasz słabego algorytmu. Korzystając-o Pubkey...
z wiersza poleceń, nie wybaczysz, że jest coś do uaktualnienia .