无法使用 chroot 用户创建 SSH SOCKS 隧道

无法使用 chroot 用户创建 SSH SOCKS 隧道

我正在尝试通过 ssh 与 chroot 监狱中的用户设置 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活动的端口转发,它也可以工作。

我假设这与 SOCKS 代理所需的实用程序有关,这些实用程序在 chroot 环境中不可见,但我无法找到与此相关的文档。用户的 chroot 目录当前仅包含要通过 sftp pull 检索的文件。

为了使这项工作有效,需要改变什么?

服务器操作系统是 CentOS 7.8 和 OpenSSH 7.4

这个问题不适用,因为它与 -L 选项相关,并且我已经在 sshd_config 中提供了推荐的设置。

相关内容