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一個 shell 腳本來檢查客戶端是否使用了正確的命令。像這樣(簡化,未經測試):

#!/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

相關內容