Deaktivieren Sie die SSH-Passwortauthentifizierung auf High Sierra

Ich möchte die Passwortauthentifizierung - dh nur Schlüssel - auf SSH deaktivieren. Ich habe dies viele Male bei Linux-Varianten getan, und einige Suchen hier deuten darauf hin, dass es auf Mac dasselbe ist, dh:

/etc/ssh/sshd_config

Dann hinzufügen/bearbeiten:

PasswordAuthentication no

Dies scheint jedoch keine Wirkung zu haben - dh ich kann mich immer noch mit einem Passwort anmelden. Gibt es einen anderen Trick, um dies in High Sierra zu tun?

Sie müssen die ssh.plist bearbeiten. Dazu muss SIP deaktiviert werden. Bearbeiten, erneutes Laden über launchctl und erneutes Aktivieren von SIP.
Insbesondere muss UsePAM auf no gesetzt werden. Die Einstellungen der folgenden 4yo sshd_config sollten in 10.13 noch funktionieren: SSH-Konfiguration ohne Passwort
@Allan Ich kann bestätigen, dass du es nicht tust. Ich habe die Passwortauthentifizierung in High Sierra (10.13.5) erfolgreich deaktiviert, indem ich nur /etc/ssh/sshd_config bearbeitet habe (ich habe die Optionen PermitRootLogin, PasswordAuthentication, ChallengeResponseAuthenticationund UsePAMalle auf gesetzt no); SIP wurde auf diesem speziellen Mac nie deaktiviert.

Antworten (3)

Um die Authentifizierung ohne öffentlichen Schlüssel zu verhindern, suchen Sie in /etc/ssh/sshd_config, kommentieren Sie sie aus und setzen Sie sie auf „no“:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Um sshd neu zu starten (was erforderlich ist, damit es die Konfigurationsdatei erneut liest), verwenden Sie

sudo launchctl stop com.openssh.sshd
sudo launchctl start com.openssh.sshd

PS: Bitte beachten Sie, dass macOS dazu neigt, /etc/ssh/sshd_configmit jedem kleineren Update zu überschreiben. Beginnend mit Monterey können Sie Ihre Definitionen eingeben /etc/ssh/sshd_config.d/000-local.conf, um dies zu vermeiden.

Funktioniert auch auf Big Sur 11.6 Danke.
Meine ursprüngliche Antwort erforderte nur die Einstellung von PasswordAuthentication und UsePAM auf no. Ist es wirklich notwendig, auch ChallengeResponseAuthentication auf no zu setzen? Was hat sich geändert?
@coolaj86 Was fügt ChallengeResponseAuthenticationhinzu?
@nohillside Speziell für macOS möglicherweise nichts, aber für ssh im Allgemeinen bezieht sich ChallengeResponseAuthentication auf die Kennwortauthentifizierung. Wenn Sie also PAM deaktivieren, aber das andere nicht deaktivieren, ist es immer noch möglich, sich über ein Kennwort anzumelden.
Es /etc/ssh/sshd_config.d/000-local.confauf Monterey zu setzen, ist eine ausgezeichnete Idee. Nach meinen Tests überschreiben Konfigurationsdateien mit niedrigeren Nummern Optionen, die in Dateien mit höheren Nummern festgelegt wurden, sodass 000 (im Gegensatz zu 999) tatsächlich die beste Nummernwahl für diese Datei ist.

Wie in Klanomaths Kommentar gesagt wurde, funktioniert das Deaktivieren nur dieser Zeilen nicht.

PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no

Um die Passwortanmeldung zu deaktivieren, müssen Sie auch die UsePAM-Zeile bearbeiten.

UsePAM no

klanomaths Kommentar

Insbesondere muss UsePAM auf no gesetzt werden. Die Einstellungen der folgenden 4yo sshd_config sollten in 10.13 noch funktionieren: SSH-Konfiguration, die kein Passwort hat – klanomath vor 2 Stunden

Scheint zu funktionieren. Auf Linux-Systemen musste ich das nie tun. Vielen Dank!