我将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
文件中