首先添加用户组ftp
groupadd ftp
添加一个名为 testt的账号
useradd -s /usr/sbin/nologin -g ftp -d /htdocs/ftp -m testt
释义:
-s /usr/sbin/nologin 无法登录SSH
-g ftp ftp用户组
-d /htdocs/ftp 指定ftp默认目录
-m testt 用户名
修改密码
passwd testt
安装vsftpd
apt install -y vsftpd
配置文件在 /etc/vsftpd.conf
备份一下,能救手抖
cp vsftpd.conf vsftpd.conf.bak
编辑配置文件,首先禁用匿名用户(默认禁用)
anonymous_enable=NO
禁用IPv6监听
#listen_ipv6=YES #注释
配置vsftpd使用 Linux 系统用户和身份验证来确定谁可以登录(默认启用)
local_enable=YES
我们还将允许他们写入权限,以便他们可以上传材料和修改内容(去掉注释)
write_enable=YES
用户将被限制在他们各自的主目录中(去掉注释)
chroot_local_user=YES
保存退出
创建 /etc/vsftpd/ 目录
创建证书和密钥
openssl req -x509 -nodes -days 720 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
WARING 填写它提出的问题,最重要的是您服务器的“通用名称”,这将是将用于连接的 IP 地址或域名。
再次编辑vsftpd.conf
我们需要指定证书和密钥文件的位置。我们实际上将两条信息合并到一个文件中,因此我们将两个选项指向同一个文件:(已经有选项,直接修改,一般在最后)
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
接下来,我们需要启用这些文件的使用并禁用匿名用户,强制在数据传输和登录例程中使用 SSL。
ssl_enable=YES #默认为NO,直接修改
allow_anon_ssl=NO #手动添加
force_local_data_ssl=YES #手动添加
force_local_logins_ssl=YES #手动添加
1
常见问题:
如果vsftp出错,在FTP软件中连接是这样的

Debian中,systemctl的报错不是那么详尽,我们进入/run目录下直接运行vsftpd可以获取报错信息
*报错SSL: cannot load RSA certificate

检查文件权限,以及密钥文件是否可用
*报错530 Anonymous sessions may not use encryption.
换一个用户试一下,用名为ftp的用户就会这样
报错530 Login incorrect.
- cat /etc/passwd,查看你登陆的账户主目录和登陆shell对应的是什么,我的是/usr/sbin/nologin
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell - 查看cat /etc/shells是否有你用户的主目录和登陆shell,没有进行添加,保存,退出
报错 553 Could not create file.
目录权限不够,chmod -R 777
参考:
https://blog.csdn.net/hahahaxiaoyu/article/details/100582853
发表评论