连接到 SFTP 服务器时,我可以毫无问题地 Chrooting 到 /home 目录并访问我想要的目录 (FileFolder)。但是当我尝试配置它以便它直接 Chrooting 到目录时,它拒绝连接。
当我将以下行更改ChrootDirectory /home
为ChrootDirectory /home/FileFolder
以访客用户身份连接时,我的连接被拒绝。访客用户的权限是rx
因为我希望用户只能下载文件。
我确实尝试在我的配置中添加日志记录,以便了解正在发生的事情:
SyslogFacility AUTH
LogLevel INFO
但该文件/var/log/auth.log
不存在(我可能弄错了,它记录到了不同的文件中)。我也尝试使用,journalctl _COMM=sshd
但它没有提供详细信息,只有正在连接的用户及其 IP。
我的sshd_配置:
Port 22
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
Subsystem sftp /usr/lib/ssh/sftp-server
Match Address 192.168.8.*
PasswordAuthentication yes
Match User guest
ForceCommand internal-sftp
ChrootDirectory /home
我已经尝试过解决方案从这里但它不起作用。
PS 我是从 192.168.8.* IP 地址连接的,所以这不是公钥认证错误。
解决方案:我必须将 FileFolder 的所有者更改为 root。最初它只是一个具有 root 权限的用户。
答案1
我怀疑是权限问题。chroot 到 /home 之所以能正常工作,是因为它归根. Chroot 到/home/文件夹不起作用,因为它不属于 root,并且只能由 root 写入。chroot路径应具有相同的权限。检查“/var/log/secure”以获取日志信息。它将列出 chroot 失败的原因。