我想限制用於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