sftp-仅向一个用户提供密码访问权限&chroot

sftp-仅向一个用户提供密码访问权限&chroot

首先,我知道这种问题已经被问了很多次了,我在这里和在 SuperUser 上尝试了很多解决方案,但都没有起作用,而且我找不到原因。

我想将我的 ssh 配置为仅接受密钥登录,但只能使用 sftp 登录的一个用户除外(没有 ssh cli 访问,如果可能的话,我不确定)

这是我的配置

AllowUsers user1 user2
LoginGraceTime 0
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
UsePrivilegeSeparation sandbox
ClientAliveInterval 120
Subsystem sftp internal-sftp
Match Group sftpusers
        ChrootDirectory /home/%u
        ForceCommand internal-sftp
Match user user2
        PasswordAuthentication yes
        ChrootDirectory /home/%u

当我尝试使用 SFTP 登录 FileZilla 时,我有此日志

Status: Connecting to *my_server_ip*:*my_ssh_port*...
Response:   fzSftp started, protocol_version=11
Command:    open "user2@*my_server_ip*" *my_ssh_port*
Status: Using username "user2". 
Command:    Pass: ************
Error:  Could not connect to server

当我尝试使用 ssh 连接时

ssh user2@*my_server_ip* -p *my_ssh_port*
user2@*my_server_ip*'s password:
client_loop: send disconnect: Connection reset

我可以使用公钥很好地连接用户 1,但我无法让用户 2 使用密码登录

答案1

对于那些与我有同样问题的人,下面是我如何在他们的主目录中 chroot sftp 用户

这是我的 sshd_config

Subsystem sftp internal-sftp
Match Group sftpusers
        X11Forwarding no
        AllowTcpForwarding no
        ChrootDirectory /home
        ForceCommand internal-sftp -d /%u
Match user user2
        PasswordAuthentication yes

您需要 chroor ,并为 您的目录可以具有正常权限/home的连接设置足够的权限,以便能够创建/上传文件。chmod 711 /home/home/user2user2

使用此配置,用户将自动移动到他们的目录中,chroot 将在/home目录中,但用户没有权限,..并且他将被囚禁在他自己的主目录中。

相关内容