【发布时间】:2014-12-05 08:04:15
【问题描述】:
我使用公钥/私钥认证通过ftp(vsftpd)登录,密码认证从sshd_config关闭。现在,我想创建一个 ftp 帐户,我可以通过 ftp 连接而无需私钥,因此,只需使用用户名和密码。如果可能的话,我该怎么做?
我使用的是 debian 7。
谢谢
【问题讨论】:
我使用公钥/私钥认证通过ftp(vsftpd)登录,密码认证从sshd_config关闭。现在,我想创建一个 ftp 帐户,我可以通过 ftp 连接而无需私钥,因此,只需使用用户名和密码。如果可能的话,我该怎么做?
我使用的是 debian 7。
谢谢
【问题讨论】:
我认为您不能对不同的系统用户使用不同的身份验证方法,因为他们的登录是由 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
【讨论】: