chroot 사용자를 사용하여 SSH SOCKS 터널을 생성할 수 없습니다.

chroot 사용자를 사용하여 SSH SOCKS 터널을 생성할 수 없습니다.

chroot 감옥에 있는 사용자와 함께 ssh를 통해 SOCKS 프록시를 설정하려고 합니다. 터널이 생성된 후 연결을 시도하면 다음과 같은 결과가 발생합니다.

channel 2: open failed: administratively prohibited: open failed

클라이언트는 다음을 통해 터널을 설정합니다.

ssh -i id_rsa [email protected] -D 1080 -N 

서버의 sshd_config 파일:

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

SyslogFacility AUTHPRIV

AuthorizedKeysFile  .ssh/authorized_keys

PasswordAuthentication yes

ChallengeResponseAuthentication no

GSSAPIAuthentication yes
GSSAPICleanupCredentials no

UsePAM yes

X11Forwarding yes

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS

Subsystem   sftp    /usr/libexec/openssh/sftp-server

Match User user123
   ChrootDirectory /opt/download
   #X11Forwarding no
   AllowTcpForwarding yes
   PermitOpen any
   ForceCommand internal-sftp

ChrootDirectory사용자 구성을 주석 처리하면 터널이 작동합니다. -L클라이언트에서 ChrootDirectory활성 포트 전달을 사용 하는 경우 에도 작동합니다.

나는 이것이 chroot 환경에 표시되지 않는 SOCKS 프록시에 필요한 유틸리티와 관련이 있다고 가정하지만 이에 대한 문서를 찾을 수 없습니다. 사용자의 chroot 디렉토리에는 현재 sftp pull을 통해 검색할 파일만 포함되어 있습니다.

이것이 작동하려면 무엇이 바뀌어야 합니까?

서버 운영 체제는 CentOS 7.8 및 OpenSSH 7.4입니다.

이 문제-L 옵션과 관련되어 있고 sshd_config에서 권장 설정을 제공했기 때문에 적용할 수 없습니다.

관련 정보