我通过将 /etc/ssh/sshd_config 文件设置为类似这样的内容来为 sftp 指定主目录。
Match User sftp-hello_world
ChrootDirectory /home/sftp-user/sftp-hello_world
ForceCommand internal-sftp -u 002
当我无法使用该用户访问 sftp 时,它会显示相对路径而不是完整的远程工作目录。
sftp> pwd
Remote working directory: /
我不确定这是 sftp 客户端问题还是远程服务器设置问题。您认为呢?
我期待着这样的事情。
sftp> pwd
Remote working directory: /home/sftp-user/sftp-hello_world/
我的环境是安装了子系统 Linux Ubuntu 18.04 LTS 的 Windows 10。如果有帮助的话,服务器端是 Amazon Linux AMI。
答案1
这是正确的行为。这就是chroot是。
实际上,你想要的是将设置/home/sftp-user/sftp-hello_world
为主目录用户sftp-hello_world
。