Jak korzystać z kluczy SSH i wyłączyć uwierzytelnianie hasła

12

Próbuję uzyskać dostęp do komputera Mac zdalnie (mam fizyczny dostęp do tego komputera Mac) za pośrednictwem protokołu SSH z komputera klienckiego z systemem Linux. Moim celem jest dostęp do tego komputera Mac spoza sieci. Przekierowanie portów jest skonfigurowane na routerze. Z mojego komputera klienckiego mogę ssh user@ipuzyskać publiczne IP i mogę dostać się do komputera Mac, więc przekierowanie portów działa.

Teraz chcę skonfigurować klucze SSH. Wygenerowałem klucze SSH na moim komputerze klienckim, ale najpierw chciałem uzyskać demona SSH na Macu. Zredagowałem /etc/ssh_configi ustawiłem PasswordAuthentication no. Zrestartowałem SSH za pomocą tych poleceń:, sudo launchctl unload /System/Library/LaunchDaemons/ssh.plista następnie sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist. Gdy próbuję ponownie włączyć SSH od klienta, nadal prosi o podanie hasła.

Spojrzałem na ten post i od odpowiedzi dodałem UsePAM nodo pliku konfiguracyjnego i ponownie uruchomiłem usługę launchctl. Nadal pojawia się monit o hasło.

Próbowałem również tutaj rozwiązanie . Nadal pojawia się monit o hasło.

Jak skonfigurować moje, ssh_configaby nie prosiło o hasło i akceptowało tylko klucze SSH? Czy nie uruchamiam ponownie poprawnie demona? Czy brakuje mi jeszcze jednego kroku?

beznez
źródło

Odpowiedzi:

13

Edytowałem zły plik konfiguracyjny! Zamiast /etc/ssh_configedytowałem private/etc/sshd_config. Myślę, że to prawdopodobnie zadziałałoby również, gdybym edytował /etc/sshd_configzgodnie ze zaktualizowaną odpowiedzią @GhostLyrics, ale jeszcze tego nie przetestowałem, więc nie mogę tego powiedzieć na pewno. Następnie ponownie uruchomiłem usługę, sudo launchctl stop com.openssh.sshda następnie sudo launchctl start com.openssh.sshdudało mi się uzyskać pożądane zachowanie. Oto zasób, w którym znalazłem istotne informacje: /superuser/364304/how-do-i-configure-ssh-on-os-x

Oto opcje konfiguracji, które zmieniłem:

PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no

Następnie udało mi się wygenerować klucze SSH na komputerze klienckim, przeniosłem klucz publiczny ~/.ssh/authorized_keysna komputer Mac i ustawiłem uprawnienia do tego pliku na 644.

Ważne jest, aby pamiętać, że te uprawnienia dotyczą mojego klucza publicznego . Moje uprawnienia do klucza prywatnego są ustawione na 600 na moim komputerze klienckim. Jest to bardzo ważne, jeśli w ~/.sshfolderze znajduje się zarówno klucz publiczny, jak i prywatny, a w systemie jest wielu użytkowników. Jeśli uprawnienia klucza prywatnego są ustawione na 644, każdy użytkownik może odczytać klucz prywatny i podszyć się pod Ciebie. Ponadto uprawnienia do ~/.sshfolderu powinny wynosić 700.

beznez
źródło
5
Wewnętrznie /etc/sshd_configi /private/etc/sshd_configsą tym samym plikiem. :)
GhostLyrics
8

/etc/ssh/ssh_configto plik konfiguracyjny dla klienta, który jest używany, jeśli nie masz bardziej konkretnego w swoim katalogu domowym. To, co chcesz edytować, to to, /etc/ssh/sshd_configktóre jest przeznaczone dla serwera.

Prawdopodobnie będziesz chciał ustawić PermitRootLogin without-password(lub no) i PasswordAuthentication notam.


Aktualizacja: Ponieważ używasz Yosemite, plik jest /etc/sshd_configzgodny z tą odpowiedzią: https://apple.stackexchange.com/a/167405/11135

W celu dalszego opracowania dlaczego nadal podpowiedzi przy ustalaniu PasswordAuthentication now /etc/ssh/ssh_configważne jest, aby zrozumieć, co skonfigurowane. „ Nawiązując połączenie wychodzące przez SSH, nie oferuj uwierzytelniania hasłem”.

GhostLyrics
źródło
Nie mam /etc/ssh/ssh_config, tylko /etc/ssh_config. Korzystam z Yosemite. Próbowałem, PasswordAuthentication noale wciąż monituje mnie o hasło.
beznez
O, rozumiem. Nie tego chcę. Chcę SSH z mojego klienta Linuksa na komputer Mac z kluczami i bez hasła. Co powinienem zmienić dla połączenia przychodzącego ?
beznez
/etc/sshd_configPasswordAuthentication no. Przepraszam za zamieszanie. Daj mi znać, jak mogę wyjaśnić odpowiedź. :)
GhostLyrics
Nadal mam takie samo zachowanie. Pyta mnie o hasło, gdy ssh z komputera z systemem Linux na komputer Mac.
beznez
Kontynuujmy to na czacie chat.stackexchange.com/rooms/info/34931/…
GhostLyrics