Назад | Перейти на главную страницу

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 закрыт.

Любые идеи?

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. Этот добавленный код - это то, на что здесь жалуются (ошибочно). Я исправил этот код, который ошибочно регистрировал это сообщение журнала уровня NOTICE, в главной ветке на GitHub. Я также буду обновлять ветку 1.3.5, чтобы это сообщение не регистрировалось так шумно, для следующего релиза maint (который должен быть уже довольно скоро).

Вы можете найти больше на - http://sourceforge.net/p/proftp/mailman/proftp-user/thread/alpine.DEB.2.00.1503301702090.3566%40familiar.castaglia.org/#msg33678099

Судя по вашей конфигурации, похоже, что вам нужен обычный FTP-сервер на порту 2215 и SFTP-сервер на порту 2216. Для этого вам понадобится 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>

Надеюсь это поможет!