如何允许通过 ssh 只复制给定的文件?

How to allow to copy only given file via ssh?

我将 authorized_keys 配置为:

from="192.168.1.*",restrict ssh-rsa AAAA***

tty 受到限制,但远程用户仍然可以在我这边执行 运行 命令: (注意行标记为 <<<<<<。这些是我输入的命令)

$ ssh kes
PTY allocation request failed on channel 0
No mail.
asdf                    <<<<<<
-bash: line 1: asdf: command not found
ls                      <<<<<<
bin
work
x
: > test                <<<<<<
echo "sdf" > test2      <<<<<<
cat test2               <<<<<<
sdf

为什么连接仍然是交互式的?

魔法是:command="cat ~/t/db/tucha.sql.gz"。结合 restrict 它将只允许用户做这件事。

我将其添加到 ~/.ssh/authorized_keys 文件中:

from="192.168.1.*",restrict,command="cat ~/t/db/tucha.sql.gz" ssh-rsa AAAAB3NzaC1yc2EXXXXXXXXX name

当用户连接到我的主机时,他将获得 tucha.sql.gz 文件的转储。

他必须使用命令连接:ssh myhost > local.name.sql.gz

因此主机的输出将保存到local.name.sql.gz文件