我正在 Linux Ubuntu Server 14.04 LTS 上创建 FTP 用户,但是当我尝试通过 FileZilla 使用 SFTP 登录时出现以下错误:
Received unexpected end-of-file from SFTP server
如果我尝试连接我的 root 用户,一切都很顺利,所以我一定是在新用户创建过程中遗漏了某些内容。以下是我所做的:
首先,我在 /etc/shells 中创建了一个假 shell,将其命名为 /bin/false,然后创建一个名为 ftpgroup 的组
sudo groupadd ftpgroup
然后我在其中创建了 ftp 用户
sudo useradd --home /var/www/html/mydir --group ftpgroup --shell /bin/false myftpuser
我给了用户一个密码
sudo passwd myftpuser
并使其成为我给他的主目录的所有者
sudo chown -R myftpuser /var/www/html/mydir
最后我为文件夹设置了权限
sudo chmod 755 /var/www/html/mydir
我知道将 /bin/false shell 更改为 /bin/bash 可以使其工作,但这会使我的用户能够访问 shell 命令,如果可能的话我会避免这种情况,我只希望他访问他自己的目录中的文件,仅此而已。
答案1
使用以下命令更改 /var/www/html/mydir 的所有者
sudo chown -R root:ftpgroup /var/www/html/mydir
答案2
您可以/etc/ssh/sshd_config
稍加修改并使用
Match User myftpuser
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
当然,替换成username
你想限制的用户名,也可以用Match Group
参数匹配用户组。
无论如何,经过修改并重新加载你的 ssh 服务器配置后它应该可以工作。