Можно ли ограничить какие папки пользователь может sftp , чтобы при использовании государственных / частных ключей?

Скажем, у меня есть сервер с user1 и их домашняя папка - /home/user1 . Я уже настроил так, чтобы user1 мог SSH к серверу, используя открытый / закрытый ключи. Прямо сейчас они могут также получить sftp к серверу, используя те же открытые / закрытые ключи, и это позволяет им видеть те же файлы / папки, что и при наличии SSHd.

Я хочу создать новый набор открытых / закрытых ключей, который будет использоваться только для sftp но я хочу, чтобы этот набор ключей позволял им просматривать только файлы / папки в /home/user1/data/ .

Я не вижу способа сделать это с помощью authorized_keys поэтому мне интересно, есть ли другой способ сделать это?

Обновить

Причина, по которой я хочу минимизировать риск, когда / если скомпрометированы разные устройства. Другими словами, если одно из моих устройств с открытым / закрытым ключом будет взломано, хакер сможет сделать только то, что ему позволяет эта комбинация открытого / закрытого ключа.

Например:

  • У меня дома есть сервер под управлением Linux с запущенным на нем сервером OpenSSH
  • У меня дома есть несколько рабочих столов, которые используют открытые / закрытые ключи для доступа к серверу.
  • У меня есть ноутбук, на котором будет запущен клиент синхронизации на основе SFTP для синхронизации C:\Users\me\Documents ноутбука с сервером /home/me/docs/laptop/

Для этого последнего пункта я хочу защитить его таким образом, чтобы в случае взлома моего ноутбука злоумышленник не смог использовать открытый / закрытый ключи для доступа к другим частям моего сервера.

Мой клиент синхронизации будет использовать автоматизацию, поэтому я не могу использовать пароли. Использование открытых / закрытых ключей будет прекрасно работать, потому что любой приличный SFTP-клиент может использовать открытые / закрытые ключи SSH. Но, даже если мой клиент синхронизации настроен только для доступа к /home/me/docs/laptop/ , ключ будет на ноутбуке, поэтому, если плохой актер получит доступ к ноутбуку, они могут использовать ключ для ssh в поле и получить доступ к другим папкам.

Я посмотрел в chroot, но, кажется, работает на основе идентификатора входа в систему, а не открытый / закрытый ключ используется. Я не хочу создавать новые идентификаторы входа в систему, потому что все файлы / папки в /home/me будут принадлежать учетной записи me и я не хочу возиться с предоставлением другим учетным записям доступа к различным папкам, таким как /home/me/docs/laptop/ . Кроме того, в chroot основная папка должна принадлежать пользователю root, что не подойдет для моего варианта использования.

1 ответ1

0

Требуется разъяснение:

Вы заявляете о linux, но не в том случае, если блокировка файла конфигурации / блокировки пользователя SELinux находятся в игре или что это за ОС Linux?

Вы упоминаете о присутствии нескольких пользователей (в настоящее время или запланированных), но, по-видимому, подразумевается только 1 пользователь на нескольких хостах. Все еще не видя, как наличие chroot sftp не будет работать здесь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .