Frage Wie benutze ich AllowGroups und AllowUsers in sshd_config?


Ich versuche zu modifizieren /etc/ssh/sshd_config auf meinem dedizierten Server debian7 mit beiden AllowUsers und AllowGroups. Aber ich kann nicht scheinen, dass beide zusammen arbeiten.


Die Einrichtung

  • Da ist ein Benutzer angerufen testuser.
  • Dieser Benutzer ist in einer Gruppe namens ssh-users:

    $ groups testuser
    testuser : testuser ssh-users
    
  • testuser versucht über zu verbinden ssh testuser@<server_ip> und ihr Passwort eingeben.

  • Meine sshd_config finden Sie hier: http://pastebin.com/iZvVDFKL - Ich denke, im Grunde genommen waren die einzigen Änderungen, die ich vom Standard gemacht habe,:
    • einstellen PermitRootLogin no
    • und füge zwei Benutzer hinzu AllowUsers (tatsächliche Benutzernamen unterscheiden sich auf meinem Server)
  • service ssh restart wird jedes Mal nach dem Ändern ausgeführt sshd_config.

Das Problem

  • testuser  können verbinden wenn gesetzt mit AllowUsers:

    AllowUsers user1 user2 testuser
    
  • testuser können NICHT bei der Einstellung verbinden AllowGroups für seine Gruppe:

    AllowUsers user1 user2
    AllowGroups ssh-users
    

    was in ... resultiert Permission denied, please try again. wann testuser gibt ihr Passwort in der ssh-Passwortabfrage ein.


Die Frage

  • Tut AllowUsers überschreiben AllowGroups?
  • Was ist der beste Weg, dies zu beheben, ohne den Benutzernamen manuell hinzuzufügen? AllowUsers? Idealerweise würde ich gerne nur Benutzer hinzufügen können ssh-users Gruppe in der Zukunft ohne zu berühren sshd_config nochmal.

21
2017-07-31 22:39


Ursprung


Ideally I'd like to be able to just add users to the ssh-users group in the future without having to touch sshd_config again. - Warum benutzen Sie überhaupt AllowUsers? Stellen Sie einfach alle in die Gruppe / Gruppen. - Zoredache


Antworten:


Ja, AllowUsers hat Vorrang vor AllowGroups. Wenn angegeben, nur die Benutzer, die mit dem in angegebenen Muster übereinstimmen AllowUsers kann eine Verbindung zur SSHD-Instanz herstellen.

Gemäß sshd_config  Manpage:

Die allow / deny-Anweisungen werden in der folgenden Reihenfolge verarbeitet:    DenyUsers, AllowUsers, DenyGroups, und schlussendlich AllowGroups.

Also, die Lösung für Ihr Problem ist wahrscheinlich die eine oder andere, möglicherweise die Gruppenzugriffsrichtlinien zu verwenden, wenn Gruppen Ihre bevorzugte Art sind, Benutzer zu verwalten.


19
2017-07-31 23:41



Hätte einfach nur AllowGroups user1 user2 ssh-users Arbeit? Ich würde deine Bestätigung bevorzugen, bevor ich es getestet habe, da ich es schon vorher hatte, wo ich versehentlich meine eigenen ssh-Privilegien entfernt habe und Unterstützung durchgehen musste, um es zu beheben. Was ist mit Match Block? Ich bitte um Rat, denn obwohl ich die Manpage angeschaut habe, habe ich nicht die Intuition / Erfahrung, um zu wissen, wie es in der Praxis funktionieren würde. Zum Beispiel mit der Reihenfolge der Verarbeitung ich dachte, da AllowGroups kommt nach AllowUsers, würde es überschreiben, wenn sie verarbeitet, aber meine Intuition war falsch dort :) - Johannes
Wenn alle 3 Gruppen auf Ihrem System sind, sollte es funktionieren. Wenn Benutzer1 und Benutzer2 nur Benutzer sind, können Sie sie zu SSH-Benutzern hinzufügen und mit SSH-Benutzern von AllowGroups auskommen. - Jeff-Inventor ChromeOS
@Johannes wenn du so etwas testest, stelle sicher, dass du eine Shell auf der Maschine geöffnet hast. Wenn Sie sshd neu starten, wird Ihre Sitzung nicht unterbrochen, und wenn Sie keine neue öffnen können, können Sie Ihre Unordnung mit der vorhandenen beheben. - Jean-Bernard Jansen


Jeffs Antwort deckt die Einzelheiten der Frage so detailliert ab, aber ich fand diese Frage zu verwenden AllowUsers und AllowGroups in einem etwas anderen Szenario. Ich wollte eingehende Verbindungen zu Benutzern in einer Gruppe (ssh) einschränken, die von bestimmten Subnetzen kommt.

Die Verbindungsregeln in sshd_config sind ein Filter - da jede zusätzliche Regel angewendet wird, kann die Menge der akzeptablen Benutzer nur reduziert werden. PATTERNS im ssh_config (5) erkläre die Form dieser Regeln.

Darüber hinaus, nach der AllowUsers Abschnitt von sshd_config:

Wenn das Muster die Form USER @ HOST hat, dann sind USER und HOST   separat geprüft, um Anmeldungen an bestimmte Benutzer zu beschränken   bestimmte Hosts. HOST-Kriterien können zusätzlich Adressen enthalten   Übereinstimmung im CIDR-Adress- / Maskenformat.

AllowGroups akzeptiert das USER @ HOST-Formular nicht.

Also, um Benutzer 1) in der SSH-Gruppe und 2) von bestimmten Subnetzen / Hosts zu akzeptieren:

AllowUsers *@192.168.1.0/24 *@*.example.com *@1.2.3.4
AllowGroups ssh

4
2017-08-25 15:53



AllowGroups doesn't accept the USER@HOST form.      Nicht sicher, was Sie damit meinen, und ist sicherlich nicht das, was die Konfigurationsdatei oder Dokumentation sagen. Erlaube Gruppen erlaubt dir definitiv, dich mit ssh username@example.com anzumelden. - AndrewD
@AndrewD AllowGroups akzeptiert nur Gruppennamen - z. du kannst nicht tun AllowGroups ssh@example.com. HOST ist die Quelle, aus der du kommst. - bjacobowski