我使用公钥/私钥验证通过ftp(vsftpd)登录,密码验证从sshd_config
关闭。现在,我想创建一个ftp帐户,我可以通过ftp连接而无需私钥,所以,只需使用用户名和密码。如果可能的话,我怎么能这样做?
我使用debian 7。
由于
答案 0 :(得分:0)
我不认为您可以为不同的系统用户使用不同的身份验证方法,因为他们的登录是由SSH处理的。可能有可能使用PAM,但很容易出错并引入安全漏洞。
一个简单的解决方案是在vsftpd中设置独立定义的虚拟用户(有很多指南)。缺点是那些用户无法通过SFTP连接,因为没有相关的SSH帐户,因此他们需要连接到不同的端口(例如21)。您还需要单独管理这些帐户和密码。
如果您选择这样,您还需要安装libpam-pwdfile
,这是一个PAM身份验证模块,用于从htpasswd样式的文件中读取密码。
然后将/etc/pam.d/vsftpd
的内容替换为:
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth required pam_pwdfile.so pwdfile=/etc/vsftpd/passwd
account required pam_permit.so
session required pam_permit.so
password required pam_deny.so