我正在尝试为特定文件夹设置一个 sftp 帐户。我创建了一个组ftpaccess
和用户testuser
,其主目录如下所示:
sudo addgroup ftpaccess
sudo useradd -d /home/forge/mydomain.com/downloads -m testuser -g ftpaccess -s /bin/false
sudo passwd testuser
sudo chown root:root /home/forge/mydomain.com/downloads
sudo chmod 755 /home/forge/mydomain.com/downloads
testuser
然后我在主文件夹内创建了一个传输目录:
sudo mkdir /home/forge/mydomain.com/downloads/transfers
sudo chown testuser:ftpaccess /home/forge/mydomain.com/downloads/transfers
然后我进行了sshd_config
如下设置(规则添加到文件末尾):
# SFTP account
Subsystem sftp internal-sftp
Match group ftpaccess
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
PasswordAuthentication yes
现在尝试使用该用户进行 sftpsftp testuser@localhost
但出现错误:
packet_write_wait: Connection to 127.0.0.1 port 22: Broken pipe
Couldn't read packet: Connection reset by peer
我究竟做错了什么?
答案1
请尝试移动子系统 sftp internal-sftp从现有块到# 覆盖无子系统的默认设置在 sshd_config 中
它对我有用。