Wie kann einigen SFTP-Benutzern auch SSH-Zugriff gewährt werden?

Wie kann einigen SFTP-Benutzern auch SSH-Zugriff gewährt werden?

Ich stelle einen SFTP-Server für ein Team bereit, aber einige dieser Benutzer benötigen auch SSH-Zugriff, um den Server zu verwalten.

PAM ist SSD mit unserem AD. Ich kann also keine separaten lokalen Benutzer für sie erstellen, die sie für SSH verwenden können, oder separate AD-Konten nur für den SSH-Zugriff erstellen.

Momentan habe ich Folgendes:

Match group server_ftp-only
ChrootDirectory /shared
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

Wenn ich ForceCommand internal-sftp entferne, können Benutzer sowohl SFTP als auch SSH verwenden, aber ich möchte nicht, dass alle Benutzer SFTP verwenden, sondern nur einige wenige.

Ich habe versucht, Folgendes hinzuzufügen:

Match group server_admins
AllowUsers *

Aber es funktioniert nicht. Es scheint, dass die ursprüngliche Match-Gruppe diese zweite Match-Gruppe überschreibt.

Eine mögliche Lösung wäre, die SSH-Benutzer aus der Sicherheitsgruppe „server_ftp-only“ in die Gruppe „server_admins“ zu verschieben und dann eine Match-Gruppe „server_admins“ ohne ForceCommand internal-sftp zu erstellen, aber die Gruppe „server_ftp-only“ wird von Teamgruppen (Team-A > server_ftp-only) bevölkert. Ich kann wirklich keine zusätzlichen Gruppen erstellen und diese Benutzer von ihren Teamgruppen trennen.

Antwort1

Ihr Problem besteht teilweise darin, dass es meines Wissens keine Möglichkeit gibt, mit einem bedingten MatchBlock das „ ForceCommandWenn“ aufzuheben, was als globaler Standard festgelegt oder durch eine andere Match-Bedingung festgelegt wurde.

Also dukann nicht:

# /etc/ssh/sshd_config
    # global config ...

    # Enable the internal SFTP server and restrict all users to only SFTP
 
    Subsystem sftp internal-sftp
    ForceCommand internal-sftp
    ChrootDirectory /shared
    
    # ... 
    
    # Override and remove the ForceCommand sftp-only restriction 
    # for users in the server_admins group 
    
    Match group server_admins
        ChrootDirectory none   <=== this does exist
        ForceCommand    none   <=== this does NOT exist

Sie lösen dieses Problem, indem Sie eine andere Strategie implementieren: Legen Sie die Standardeinstellungen nicht ForceCommandals Standard fest, lassen Sie sie etwas lockerer und erstellen Sie dann eine etwas kompliziertereMatchBlock mit einemnegiertes Musterdamit es für alle gilt ( *),außerdie Mitglieder vonserver_adminsund dort überschreiben Sie die Standardeinstellungen und fügen Einschränkungen hinzu:

# /etc/ssh/sshd_config
# ... 
# your current global config
#
# Enable the internal sftp server but do not set the ForceCommand 

Subsystem sftp internal-sftp

# ... 

# Everybody except members of the server_admins group are restricted to SFTP

Match group !server_admins,* 
    ForceCommand internal-sftp
    ChrootDirectory /shared
    X11Forwarding no
    AllowTcpForwarding no

Und ähnlich passend die Mitglieder vonserver_ftp-onlydie nicht auch Mitglied vonserver_admins

Match group !server_admins,server_ftp-only 
    ForceCommand internal-sftp
    ...

verwandte Informationen