@danforth

Как сделать аутентификацию для пользователя sFTP (ssh) по файлу ключу?

Всем привет!

Установил NGINX, папка с хостами /var/www/html/site.ru/.
В /etc/ssh/sshd_config в конец добавил:

Match User ftp
ForceCommand internal-sftp
PasswordAuthentication yes // хочу сделать no
#AuthorizedKeysFile /home/danforth/.ssh/sftp_authorized_keys // путь к файлу с публичным ключем
ChrootDirectory /var/www/
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

Домашняя директория для юзера ftp /var/www.

Когда указываю путь к файлу, то в FileZilla получаю следующую ошибку:
Disconnected: No supported authentication methods available (server sent: publickey)

Если закомментировать обратно и включить аутентификацию по паролю, то все ок, подключается.

На файл /home/danforth/.ssh/sftp_authorized_keys владелец и группа ftp, и доступ только на чтение и запись.

Также пробовал делать по этому мануалу: https://wiki.archlinux.org/index.php/SFTP_chroot#F...

В чем может быть проблема и как указать путь к файлу с публичным ключом?

upd.1:
В логах замети вот что:
Oct 16 12:52:17 quasar sshd[23847]: User ftp authorized keys /etc/ssh/authorized_keys/ftp is not a regular file


Текущий конфиг такой:
Match User ftp
ForceCommand internal-sftp
PasswordAuthentication no
AuthorizedKeysFile /etc/ssh/authorized_keys/%u .ssh/authorized_keys
ChrootDirectory /var/www/
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no


Путь к файлу такой:
/etc/ssh/authorized_keys/ftp/.ssh/authorized_keys

Пробовал в AuthorizedKeysFile писать следующее:
/etc/ssh/authorized_keys/ftp/.ssh/authorized_keys
/etc/ssh/authorized_keys/ftp/
/etc/ssh/authorized_keys/%u/
Не помогло.
  • Вопрос задан
  • 861 просмотр
Решения вопроса 1
@danforth Автор вопроса
В общем-то, заработало со следующим конфигом:
namei -mo /etc/ssh/authorized_keys/ftp/.ssh/authorized_keys
drwxr-xr-x root root .
 drwxr-xr-x root root authorized_keys
 drwxr-xr-x ftp  ftp  ftp
 drwx------ ftp  ftp  .ssh
 -rw------- ftp  ftp  authorized_keys

В конфиге:
Match User ftp
ForceCommand internal-sftp
PasswordAuthentication no
AuthorizedKeysFile /etc/ssh/authorized_keys/ftp/.ssh/authorized_keys
ChrootDirectory /var/www/
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no


В таком варианте запустилось, видимо было что-то с правами.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
1.Файл ключа должен называться authorized_keys.
Способом, описанным по ссылке, не пользовался.
2.доступ к ключу должен быть только у владельца.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы