Какие ограничения необходимы для ключа SSH, чтобы разрешить сохранение и запись файлов только через SSHFS?

Какие ограничения необходимы для ключа SSH, чтобы разрешить сохранение и запись файлов только через SSHFS?

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

Какие еще опции мне следует добавить в дополнение к опциям no-port-forwarding,no-x11-forwarding,no-agent-forwarding,no-pty(которые, как я предполагаю, не повлияют на ситуацию)?

Я думаю, в частности, об command=опции и о том sftp, какие scpопции в нее следует включить.

решение1

Для меня это работает:

command="/usr/lib/ssh/sftp-server"

(Вы можете узнать это самостоятельно, посмотрев список процессов на сервере ssh)

Еще лучше, если вы укажете commandна скрипт оболочки, который проверяет, использовал ли клиент правильную команду. Например, так (упрощенно, не проверено):

#!/bin/sh
# We get SSH_ORIGINAL_COMMAND from sshd

# comment out for production!
echo "debug original command: $SSH_ORIGINAL_COMMAND" >&2

if [ "$SSH_ORIGINAL_COMMAND" != "/usr/lib/ssh/sftp-server" ]; then
    echo "access denied" >&2
    exit 1
fi
exec /usr/lib/ssh/sftp-server

Такой скрипт также позволит проверить допустимые аргументы для sftp-сервера. Похожая идея, как и для известного rrsyncскрипта.

Для других возможных вариантов "no-*". Я думаю, вы можете использовать большинство из них, просто попробуйте. Они объяснены в man sshd->AUTHORIZED_KEYS FILE FORMAT

Связанный контент