仅显示 ftp 用户他的文件夹(vsftp)

仅显示 ftp 用户他的文件夹(vsftp)

我知道这个问题已经被回答过几次了,但是我尝试了所有方法,仍然没有效果。

我尝试创建用户并将他们 chroot 到特定文件夹,但在 ftp 之后,我能够进入树并查看例如“/”文件夹及其内容。

我并未尝试将“虚拟用户”与 PAM 一起使用,但当前问题是“身份验证失败”。

/etc/vsftpd.conf

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
secure_chroot_dir=/var/run/vsftpd/empty
ssl_enable=YES
allow_anon_ssl=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
user_sub_token=$USER
local_root=/home/bgftp/ftp/$USER
pasv_enable=Yes
pasv_min_port=40000
pasv_max_port=50000
chroot_list_enable=yes
pasv_address=[ip]
chroot_local_user=YES
hide_ids=YES
allow_writeable_chroot=YES
user_config_dir=/etc/vsftpd_user_conf
guest_enable=YES
virtual_use_local_privs=YES
pam_service_name=vsftpd
nopriv_user=vsftpd
guest_username=vsftpd
virtual_use_local_privs=YES

vsftpd:版本 3.0.3 ubuntu:18.04

/etc/pam.d/vsftpd

auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd crypt=2
account required pam_permit.so crypt=2

/etc/vsftpd/ftpd.passwd 的格式为用户:哈希,使用该哈希创建了哈希openssl passwd -1,我手动复制了结果。

user1 文件夹存在:

/home/bgftp/ftp/user1# cat /etc/vsftpd_user_conf/user1
local_root=/home/bgftp/ftp/user1/folder1

当前响应:

Status: Connecting to [ip]...
Response:   fzSftp started, protocol_version=2
Command:    open "user1@[ip]" 22
Command:    Trust new Hostkey: Once
Command:    Pass: ******
Error:  Authentication failed.
Error:  Critical error: Could not connect to server

如果你需要更多信息,请告诉我

答案1

看起来你可能有点困惑。vsftp 程序是一个 FTP 服务器,因此它将在端口 21(ftp)上监听你的连接。你正在使用 sftp 客户端尝试连接到你的服务器,因此你正在连接端口 22(ssh)。

FTP 和 SFTP 协议不兼容。

如果您想使用上述的 vsftpd 服务连接到您的服务器,您将需要使用 ftp 客户端。您可能还需要打开相关端口。

如果您想使用 sftp 连接到您的服务器,您将需要配置您的 sshd 服务以允许它。

答案2

SFTP = SSH 文件传输协议....因此您需要允许特定的 ftp 用户帐户能够 ssh 您的服务器。这样您就可以连接 vsftpd 服务器

相关内容