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