Aktivieren Sie die Anmeldung nur mit SSH-Schlüssel für 1 Benutzer auf meinem Mac

21

Ich habe ein Macbook Air, auf das ich den SSH-Fernzugriff ohne Kennwort zulassen möchte. Ich habe einen Benutzer mit dem Namen erstellt remotepair, bei dem ich mich angemeldet und überprüft habe, ob ich den Mac mit verwenden kann. Ich habe diesen Benutzer auch zur Liste der zulässigen Benutzer des Dienstes "Anmeldung entfernen" hinzugefügt und den Dienst aktiviert. Dies wurde alles in der Systemsteuerung "Sharing" durchgeführt.

Ich habe den öffentlichen Schlüssel eines anderen Computers erhalten und zur Datei hinzugefügt /Users/remotepair/.ssh/authorized_keys. Wenn der andere Computer es tut, ssh remotepair@<my ip>erhalte ich immer noch eine Passwortabfrage.

Wie deaktiviere ich diese Passwortabfrage?

Jason
quelle
1
Ich empfehle, Ihrem Fragentitel die Option "Nur-SSH-Schlüssel-Authentifizierung" hinzuzufügen - die Art und Weise, wie sie jetzt angezeigt wird, klingt wie eine normale GUI-Anmeldung im Fenster "Anmelden".
NReilingh,

Antworten:

27

Um die Kennwortauthentifizierung zu deaktivieren, müssen Sie sie bearbeiten /etc/sshd_config. In Terminal:

sudo vim /etc/sshd_config

(oder durch Ihren Lieblingseditor ersetzen)

Suchen Sie nach der Zeile:

#ChallengeResponseAuthentication yes

Und ändern Sie es zu:

ChallengeResponseAuthentication no

Das heißt, entfernen Sie die #am Anfang und ändern Sie yeszu no.

Alle nachfolgenden SSH-Anmeldungen erfordern nun die Verwendung eines SSH-Schlüssels und fordern Sie nicht zur Eingabe eines Kennworts auf. Stellen Sie sicher, dass Ihr SSH-Schlüssel funktioniert, bevor Sie dies tun, wenn Sie keinen lokalen Zugriff haben! Der ssh-Daemon muss nicht neu gestartet werden, da er bei Bedarf für jede neue eingehende Verbindung gestartet wird. Beachten Sie, dass möglicherweise auch eine PasswordAuthenticationLinie angezeigt wird, die jedoch standardmäßig nobereits vorhanden ist.

Wenn Ihre SSH-Schlüssel nicht funktionieren, dann ist das wirklich ein separates Problem, aber dies beantwortet die Frage, wie sie jetzt gestellt wird :)

Cäsium
quelle
Ich muss den Benutzer auch zur AllowUser-Einstellung hinzufügen. Ich kann nur vermuten, dass das GUI-Setup diese Textzeile nicht verändert hat.
Jason
7
Beachten Sie, dass in späteren Versionen von Mac OS X (definitiv in El Capitan) sshd_config nach verschoben wurde /etc/ssh/.
Zelk
2
Beachten Sie, dass ab MacOS Sierra (v10.12.x) die Standardeinstellung für auf PasswordAuthenticationgeändert yeswurde. Ändern Sie sie daher unbedingt auf no.
Travis Clarke
3

Um die Antwort für macOS Sierra (10.12.6) zu aktualisieren, wird die Konfigurationsdatei angezeigt /etc/ssh/sshd_config

2 Zeilen müssen unkommentiert und geändert werden, um die Kennwortauthentifizierung vollständig zu deaktivieren: (Dies sind die Zeilen 57 bis einschließlich 62 in der Standarddatei. sshd_config)

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

Wie bereits erwähnt, können Sie den SSH-Zugriff über die Benutzeroberfläche von System Preferences.app aktivieren / deaktivieren. Zwischen dem Bearbeiten der Konfiguration ist kein Neustart des Dämons erforderlich.

Ivan G.
quelle
1

Sie sollten die Berechtigungen der beteiligten Verzeichnisse überprüfen: /Users/remotepair/und /Users/remotepair/.sshsie dürfen keinen Schreibzugriff für "andere" Benutzer zulassen. Meine .sshhat nur Zugriffsrechte für den Eigentümer.

Führen Sie außerdem auf dem fernen System eine Aktion aus, um festzustellen ssh -v remotepair@yoursystem, welche Autorisierungsmethoden zulässig sind und versucht werden. Ausschau halten nach Authentications that can continue: publickey,password,keyboard-interactive. Möglicherweise müssen Sie RSAAuthenticationauf Ihrem System aktivieren .

vilmoskörte
quelle
1

Auf einem Testsystem mussten zum Deaktivieren der SSH-Eingabeaufforderung die folgenden zwei Zeilen hinzugefügt werden /etc/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no

In den Kommentaren wird sshd_configaußerdem empfohlen, folgende Zeile hinzuzufügen:

UsePAM no
lava37
quelle