如何允许通过 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
文件
我将 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
文件