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에서 권장 설정을 제공했기 때문에 적용할 수 없습니다.