尝试在安装的硬盘上安装SFTP服务器,并按照一堆教程的说明,在登录时总是得到"client_loop:发送断开连接:连接重置“。
我首先创建一个名为sftp的组,然后在HDD中为该组分配一个包含主目录的用户:
sudo useradd -g sftp -d /media/linux/MyHDD/NAS/USERNAME -s /sbin/nologin USERNAME-nas
sudo passwd USERNAME其中用户名是我的个人用户名
然后,我尝试将用户名文件夹上的所有内容设置为root,将用户名文件夹设置为用户:
sudo chown -R root:root /media
sudo chown -R USERNAME:sftp /media/linux/MyHDD/NAS/USERNAME编辑了包含以下内容的sshd_config文件:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /media/linux/MyHDD/NAS/USERNAME
ForceCommand internal-sftp
AllowTcpForwarding no
X11 Forwarding no不要忘记重新启动sshd服务
sudo systemctl restart sshd由于我想在linux计算机上访问这个文件夹,所以我将媒体文件夹的权限设置为777。
sudo chmod -R 777 /media在完成所有这些操作之后,当尝试登录sftp并输入密码时,我会收到以下信息:
sftp -P PORTNO USERNAME@IP
client_loop: send disconnect: Connection reset
Connection closed这是权限问题,还是所有权问题,我不知道。我在这方面花了很长时间,似乎找不出答案,因此,任何帮助都将不胜感激。
发布于 2021-05-24 12:52:29
ChrootDirectory /media/linux/MyHDD/NAS/USERNAME
[...]
sudo chown -R USERNAME:sftp /media/linux/MyHDD/NAS/USERNAME
[...]
sudo chmod -R 777 /media"ChrootDirectory“特性要求chroot目录及其父目录具有某些所有权和权限:
ChrootDirectory 将目录的路径名指定为chroot(2)到身份验证后。在会话启动时,sshd(8)检查路径名的所有组件都是根拥有的目录,任何其他用户或组都不能写这些目录。在chroot之后,sshd(8)将工作目录更改为用户的主目录。ChrootDirectory的参数接受令牌部分中描述的令牌。
设置chroot目录的方式有两个问题:
首先,/media、/media/linux/MyHDD/NAS/USERNAME和中间的所有目录都不能是全局或组可写的。它们需要的是模式755而不是777。
第二,/media/linux/MyHDD/NAS/USERNAME本身必须由root拥有。其中的目录和文件可以由用户拥有,但是USERNAME目录本身必须由root拥有。
https://unix.stackexchange.com/questions/651139
复制相似问题