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

ProFTPD pub key аутентификация, все еще запрашивает пароль

Я настроил mod_sftp с помощью ProFTPD, и по какой-то причине он все еще запрашивает пароль при подключении.

Это мое conf.d/myserver файл:

SFTPEngine on
SFTPLog /var/log/sftp.log
Port 7770
SFTPHostKey /etc/ssh/ssh_host_rsa_key
SFTPHostKey /etc/ssh/ssh_host_dsa_key
SFTPAuthorizedUserKeys file:/etc/proftpd/authorized_keys/%u
SFTPCompression delayed
MaxLoginAttempts 6
DefaultRoot ~
Umask 002
CreateHome on 770 dirmode 770

А открытый ключ для пользователя находится в /etc/proftpd/authorized_keys.

Я испытал это, и это было вызвано тем, что похоже на ошибку в ssh-keygen это проявляется при преобразовании ключа формата ssh-rsa в формат ключа RFC-4716: Комментарий заголовок слишком длинный.

Чтобы убедиться, что это происходит с вами, включите опцию SFTPLog в вашем proftpd.conf файл, то в файле журнала SFTP вы увидите такие строки, как следующие, в частности, часть «слишком длинная строка»:

Jul 25 19:11:25 mod_sftp/0.9.7[16355]: public key fingerprint: 77:fa:c7:d6:da:b9:99:6f:9d:5f:74:30:ba:09:4f:e9
Jul 25 19:11:25 mod_sftp/0.9.7[16355]: line too long (74) on line 1 of '/etc/proftpd.d/authorized_keys/myusername'
Jul 25 19:11:25 mod_sftp/0.9.7[16355]: Make sure that '/etc/proftpd.d/authorized_keys/myusername' is a RFC4716 formatted key
Jul 25 19:11:25 mod_sftp/0.9.7[16355]: error base64-decoding key data in '/etc/proftpd.d/authorized_keys/myusername'
Jul 25 19:11:25 mod_sftp/0.9.7[16355]: error comparing keys from '/etc/proftpd.d/authorized_keys/myusername': Invalid argument
Jul 25 19:11:25 mod_sftp/0.9.7[16355]: sending userauth failure; remaining userauth methods: publickey,password
Jul 25 19:11:29 mod_sftp/0.9.7[16355]: disconnecting client (received EOF)

Взгляните на проблемный ключ, и вы увидите, как он выделяется:

Обрежьте это текстовым редактором по своему выбору, и ключ аутентификации должен начать работать. Используя bash, это выглядит так, где user.pub - ваш ключевой файл:

cut -c 1-72 user.pub | sed '/^Comment: "[^"]*$/ s/$/"/' > user.pub

Если вместо этого вы хотите сохранить весь комментарий, вам нужно будет экранировать конец строки и поместить его в следующую. Увидеть пример раздела RFC 4716 о том, как переформатировать комментарии.

Наконец, я столкнулся с этой проблемой, используя ssh-keygen на CentOS 6.9. Версия для Mac OS Sierra правильно усекает ключевые комментарии, чтобы избежать этой проблемы.

Текущее значение SFTPAuthorizedUserKeys настроено на использование файлов авторизованных ключей для каждого пользователя. Я бы предположил, что для данного пользователя, давайте возьмем jsmith в качестве примера, их ключ должен быть помещен в файл с именем / etc / proftpd / authorized_keys / jsmith.

Чтобы ваша текущая установка работала, попробуйте изменить значение SFTPAuthorizedUserKeys на / etc / proftpd / authorized_keys.

Видеть http://www.proftpd.org/docs/contrib/mod_sftp.html#SFTPAuthorizedUserKeys для более подробной информации.