chroot, gpg-agent и Ubuntu 18.04

Для доступа SFTP к моему серверу я создал пользователя sftp, который ограничен рабочим каталогом chroot,

Match User sftp-user
    AuthorizedKeysFile /home/sftp-user/.ssh/authorized_keys
    ChrootDirectory /var/www/domain
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

И эта запись в /etc/passwd

sftp-user:x:1003:1003::/html:/usr/sbin/nologin

Были некоторые проблемы с файлом ключа, но установление абсолютного пути для этого решило проблему. Вход в систему SFTP работал нормально до тех пор, пока - я точно не знаю - мониторинг сервера nagios был установлен на сервере (VPS) и / или были выполнены обновления, и система была перезагружена.

Теперь соединение не удается и syslog показывает эту ошибку:

systemd[7590]: gpgconf: running /usr/bin/gpg-agent failed (exitcode=2): General error
systemd[7590]: gpgconf: fatal error (exit status 1)

Эта ошибка возникает независимо от того, выполняется ли вход с помощью ключевого файла или пароля. Итак, я попытался ответить на вопрос, gpg-agent говорит, что агент существует, но gpg говорит, что agent не существует? чтобы сузить проблему.

$ gpg-agent --version
gpg-agent (GnuPG) 2.2.4
libgcrypt 1.8.1

Когда я начал gpg-agent как пользователь (не пользователь sftp), он создает файл в домашнем каталоге при первом запуске:

$ gpg -d demo-file.asc
gpg: keybox '/home/username/.gnupg/pubring.kbx' created

Когда я отключаю chroot в /etc/ssh/sshd_config, логин работает правильно. Поэтому я предполагаю, что в сеансе chroot не удается получить доступ. Поскольку пользователю sftp запрещено использовать оболочку, я не стал bind любые каталоги в домашний каталог пользователя sftp.

1 ответ

Это на самом деле было .gnupg каталог, который не может быть создан. Домашний каталог, указанный в /etc/passwd (/html) является относительным во время сеанса SFTP, но понимается как абсолютный путь при входе в систему. Следовательно...

  • Создание папки .gnupg в chroot+home = /var/www/domain/html не помогло.
  • Создание папки /html/.gnupg (.gnupg принадлежит sftp-user) удалил сообщение об ошибке из /syslog,

Чтобы позаботиться о дальнейших проблемах (конечно, это не сработало сразу), я начал другую sshd демон в подробном режиме и подключен к этому порту.... но это привело бы к не по теме здесь.

sudo /usr/sbin/sshd -d -p 3321
Другие вопросы по тегам