Ограничить доступ sftp к определенным папкам при использовании открытого / закрытого ключа с openssh

Можно ли ограничить, какие папки пользователь может 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 ответ

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

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

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

Другие вопросы по тегам