팀을 위해 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
...