일부 SFTP 사용자에게 SSH 액세스도 허용하는 방법은 무엇입니까?

일부 SFTP 사용자에게 SSH 액세스도 허용하는 방법은 무엇입니까?

팀을 위해 SFTP 서버를 배포하려고 하는데 해당 사용자 중 일부는 서버를 관리하기 위해 SSH 액세스도 필요합니다.

PAM은 우리 AD와 함께 SSD입니다. 따라서 SSH에 사용할 별도의 로컬 사용자를 생성하거나 SSH 액세스만을 위한 별도의 AD 계정을 생성할 수 없습니다.

현재 나는 이것을 가지고 있습니다 :

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

사용자에게 SFTP와 SSH를 모두 허용하는 ForceCommand 내부 sftp를 제거하지만 모든 사용자가 SFTP를 사용하는 것을 원하지 않고 몇 명의 사용자만 사용하는 경우.

나는 이것을 추가하려고 시도했습니다 :

Match group server_admins
AllowUsers *

하지만 작동하지 않습니다. 원래 일치 그룹이 이 두 번째 일치 그룹을 재정의하는 것으로 보입니다.

가능한 해결 방법 중 하나는 SSH 사용자를 server_ftp 전용 보안 그룹에서 server_admins 그룹으로 제거한 다음 ForceCommand 내부 sftp 없이 일치 그룹 server_admins를 생성하는 것입니다. 하지만 server_ftp 전용 그룹은 팀 그룹으로 채워집니다(Team-A > server_ftp 전용). 추가 그룹을 만들고 이러한 사용자를 팀 그룹에서 분리할 수는 없습니다.

답변1

귀하의 문제는 부분적으로 내가 아는 한 조건부 블록을 사용하여 전역 기본값으로 설정되거나 다른 일치 조건에 의해 설정된 경우 Match설정을 해제 할 수 없다는 것입니다.ForceCommand

그래서 당신은할 수 없다:

# /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

다른 전략을 구현하여 이 문제를 해결합니다. 기본값으로 설정하지 말고 ForceCommand기본값을 어느 정도 완화한 다음 약간 더 복잡한 전략을 만듭니다.Match로 차단하다부정 패턴모든 사람에게 적용되게 하기 위해 ( *),제외하고회원들server_admins거기에서 기본값을 무시하고 제한 사항을 추가합니다.

# /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

그리고 멤버들과도 비슷해요server_ftp-only그 사람도 의 회원이 아닙니다.server_admins

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

관련 정보