Beschränken Sie den kennwortbasierten SSH-Zugriff pro Benutzer, lassen Sie jedoch die Schlüsselauthentifizierung zu

21

Ist es möglich, den PASSWORD SSH-Zugriff für Benutzer zu deaktivieren, die Schlüsselauthentifizierung jedoch für jeden Benutzer einzeln zuzulassen? Ich meine, ich habe einen Benutzer A, dem ich keinen kennwortbasierten Zugriff gewähren möchte, aber ich möchte nicht, dass er nur die Schlüsselauthentifizierung verwendet, um auf die Server zuzugreifen. Vielen Dank

gyre
quelle

Antworten:

49

Sie können "Match" -Abschnitte hinzufügen, um bestimmte Benutzer oder Gruppen am unteren Rand von sshd_config abzugleichen, z.

Match user stew
PasswordAuthentication no

oder

Match group dumbusers
PasswordAuthentication no
Eintopf
quelle
9
Ich würde Einrückungen vermeiden, da dies darauf hindeutet, dass nur die eingerückten Zeilen betroffen sind, Matchwährend in Wirklichkeit alle Konfigurationen bis zur nächsten MatchDirektive betroffen sind . Könnte für jemanden verwirrend sein, der mit der Syntax nicht vertraut ist.
Michael Mior
2
@MichaelMior gibt es einen Weg zu "EndMatch"?
Nick T
4
@NickT Matchfunktioniert bis zum nächsten Matchoder HostSchlüsselwort. Du könntest es einfach benutzen Match user *.
Michael Mior
@MichaelMior Bedeutet dies, dass Sie bei Verwendung Match user ZaQwEdCxSeine Reihe von Konfigurationszeilen temporär oder permanent für niemanden nutzbar machen könnten?
Tripp Kinetics
Dies würde bedeuten, dass alle nachfolgenden Konfigurationszeilen nur für die genannten Benutzer gelten ZaQwEdCxS. Wenn Sie jedoch eine andere Frage haben, sollten Sie eine neue Frage stellen.
Michael Mior
4

Sperren Sie einfach die Passwörter der Benutzer, die Sie nicht mit Passwörtern anmelden möchten:

usermod -L <user>

Fügen Sie dann einen gültigen öffentlichen Schlüssel in die .ssh/authorized_keysDatei ein, und Sie können sich nur mit dem entsprechenden privaten Schlüssel anmelden, jedoch nicht mit einem Kennwort.

Hinweis: Dies unterbricht sudo, es sei denn, der Benutzer hat NOPASSWD: in seinem Visudo-Eintrag

Oliver
quelle
8
Das wird auch Sudo brechen. Vielleicht kein Problem in diesem Fall, aber es ist zu erwähnen.
EEAA
Ja, das ist wahr. Ich hätte es erwähnen sollen.
Oliver
1
Einige OpenSSH-Setups (z. B. Ubuntu 14.04 in der Standardkonfiguration) lassen keine gesperrten Benutzer zu, auch nicht über authorized_keys
Nils Toedtmann
@NilsToedtmann Kannst du eine Quelle zur Überprüfung angeben? Dies wäre auch in der Antwort sehr wichtig, wenn ja.
Metagrapher
-3

du solltest nachsehen

/etc/ssh/sshd_config

Ich denke, was Sie suchen, ist

PasswordAuthentication yes

ändere es in no und vergiss nicht sshd neu zu starten

alexus
quelle
2
Ich bin mir dessen bewusst - dies ist jedoch eine GLOBALE Einstellung - ich möchte eine detailliertere Option - deshalb habe ich "pro Benutzer" gesagt - ich möchte dies nur für einige Benutzer (verwendet für die Innercluster-Kommunikation zwischen den Servern im Cluster) - Nicht für alle Benutzer
Gyre
Oh, richtig, es tut mir leid, dass ich es nicht richtig gelesen habe. Was @stew empfohlen hat, ist ein guter Weg
Alexus