我正在Linux Ubuntu Server 14.04 LTS上创build一个FTP用户,但是当我尝试通过FileZilla与SFTPlogin时,出现以下错误:
Received unexpected end-of-file from SFTP server
如果我尝试与我的根用户连接一切都很好,所以我必须错过新的用户创build中的东西。 这是我做的:
首先我在/ etc / shells中创build了一个假shell,命名为/ bin / false我创build一个名为ftpgroup的组
sudo groupadd ftpgroup
然后我在其中创build了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命令,如果可能,我会避免这种情况,我只想让他访问文件他自己的目录,没有更多。
用下面的命令更改/ var / www / html / mydir的所有者
sudo chown -R root:ftpgroup /var/www/html/mydir
你可以稍微修改/etc/ssh/sshd_config并使用
Match User myftpuser ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no PermitTunnel no X11Forwarding no
当然,用您想要限制的用户名replaceusername名。 也可以使用Match Group参数匹配用户组。
无论如何,修改和重新加载你的SSH服务器configuration后,它应该工作。