我知道这个问题已经被回答过几次了,但是我尝试了所有方法,仍然没有效果。
我尝试创建用户并将他们 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 服务器