我已经设置了一个新的 proftpd 服务器,使用 mod_sftp 来支持 SSH,当我使用密码时,我可以登录。但是当我尝试使用我的 SSH 密钥时,我无法连接。
这是完整的 proftpd.conf 文件:
[root@myers log]# cat /usr/etc/proftpd.conf
ServerName "Develop CENTS"
ServerType standalone
DefaultServer on
Port 2215
UseIPv6 off
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022
MaxInstances 15
User nobody
Group nobody
DefaultRoot ~
AllowOverwrite on
# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
DenyAll
</Limit>
<IfModule mod_auth_pam.c>
AuthPAM off
</IfModule>
<IfModule mod_sftp.c>
SFTPEngine on
SFTPHostKey /usr/etc/proftpd/rsa_key
SFTPHostKey /usr/etc/proftpd/dsa_key
Port 2216
SFTPAuthMethods publickey
MaxLoginAttempts 4
SFTPCompression delayed
<VirtualHost www.mydomain.com>
SFTPAuthorizedUserKeys file:/home/mydomain.com/.ssh/authorized_keys
DefaultRoot ~
</VirtualHost>
</IfModule>
无论使用何种身份验证方法,我都会在 /var/log/messages 中看到以下一行:
Mar 19 10:41:51 myers proftpd[29675]: myhost.com - unable to create namebind for 'www.mydomain.com' to IPAddress#21: No such file or directory
除此之外,当我尝试使用 SSH 密钥连接时,日志文件中唯一出现的内容是客户端确实到达了服务器并且打开了 SSH2 会话,但下一行表明 SSH2 会话已关闭。
有任何想法吗?
答案1
从您的配置来看,您似乎希望在端口 2215 上使用普通 FTP 服务器,在端口 2216 上使用 SFTP 服务器。为此,您需要mod_sftp
在其自己的<VirtualHost>
部分中进行配置。根据您的配置,两个Port
指令都出现在同一个“vhost”上下文中,因此 ProFTPD 在解析配置时可能不会按照您的预期执行。我建议使用类似以下内容:
# ... previous config ...
<IfModule mod_auth_pam.c>
AuthPAM off
</IfModule>
<IfModule mod_sftp.c>
# Here we give mod_sftp its own explicit vhost, and put all of
# of the mod_sftp configuration within that <VirtualHost> section.
<VirtualHost www.mydomain.com>
Port 2216
SFTPEngine on
SFTPHostKey /usr/etc/proftpd/rsa_key
SFTPHostKey /usr/etc/proftpd/dsa_key
SFTPAuthMethods publickey
MaxLoginAttempts 4
SFTPCompression delayed
SFTPAuthorizedUserKeys file:/home/mydomain.com/.ssh/authorized_keys
DefaultRoot ~
</VirtualHost>
</IfModule>
希望这可以帮助!
答案2
Mar 19 10:41:51 myers proftpd[29675]: myhost.com - unable to create namebind for 'www.mydomain.com' to IPAddress#21: No such file or directory
这只是一个表面警告。据我了解,您使用的是 proftpd-1.3.5。
作为 1.3.5 的最终工作的一部分,我开始添加一些支持 HOST 命令(RFC 7151)的基础,这将为 FTP 提供基于真实名称的虚拟主机支持。添加的代码就是这里(错误地)抱怨的。我已经在 GitHub 上的主分支中修复了错误地记录 NOTICE 级别日志消息的代码。我还将更新 1.3.5 分支,以便该消息不会如此嘈杂地记录,以备下一个维护版本(现在应该很快就会发布)。
您可以在以下位置找到更多信息 -http://sourceforge.net/p/proftp/mailman/proftp-user/thread/alpine.DEB.2.00.1503301702090.3566%40familiar.castaglia.org/#msg33678099