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

相关内容