proftpd ssh基于密钥的身份验证不起作用

proftpd ssh基于密钥的身份验证不起作用

我已经设置了一个新的 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

相关内容