SSHFS 経由でのみファイルの保存と書き込みを制限するには、SSH キーにどのような制限が必要ですか?

SSHFS 経由でのみファイルの保存と書き込みを制限するには、SSH キーにどのような制限が必要ですか?

sshfsプロセスのみがそのキーを使用できるように、使用されるキーを制限しますsshfs。つまり、sshfsファイルの書き込みと保存、およびディレクトリの一覧表示に使用するコマンドに制限します。

オプションno-port-forwarding,no-x11-forwarding,no-agent-forwarding,no-pty(影響はないと思います)に加えて、他にどのようなオプションを追加する必要がありますか?

私は特にcommand=オプションについて、そしてそこにどのようsftpscpオプションを入れるべきかについて考えています。

答え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-server に許可されている引数をチェックすることもできます。よく知られているrrsyncスクリプトと同様の考え方です。

その他の「no-*」オプションについては、ほとんどのオプションが使えると思いますので、試してみてください。説明はman sshd->AUTHORIZED_KEYS FILE FORMAT

関連情報