3

我配置了一个 ssh 命令键,例如(在远程 mashine M1 中):

command="/usr/bin/nslookup",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-dss DEADBEEFDEADBEEF= mycow@farm.org

允许从客户端机器 C1 在 M1 中运行 nslookup。它有效,我可以运行:

C1> ssh -i mylookup_key M1

我在 M1 上执行 nslookup,但我需要传递参数才能真正工作。如何将参数传递给 ssh 命令键?

pd:我使用 nslookup 作为我想要执行的真实程序的示例。

4

3 回答 3

6

看一下$SSH_ORIGINAL_COMMAND应该包含传递给的命令的变量ssh。例如:

command="/usr/bin/nslookup $SSH_ORIGINAL_COMMAND",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-dss DEADBEEFDEADBEEF= mycow@farm.org

然后尝试:

$ ssh -i mylookup_key M1 stackoverflow.com
于 2011-07-14T08:30:20.717 回答
1

如果我理解正确,您只想在远程机器上运行命令。简单的情况是将命令作为最后一个参数传递给 ssh

ssh -i mylookup_key M1 nslookup stackoverflow.com

但是您可能需要小心引用和特殊字符。例如

ssh -i mylookup_key M1 ./args.sh "1 2 3"
PROG:./args.sh
ARG[1]: 1
ARG[2]: 2
ARG[3]: 3
ssh -i mylookup_key M1 ./args.sh '"1 2 3"'
PROG:./args.sh
ARG[1]: 1 2 3
于 2011-07-14T08:23:23.177 回答
0

您是否尝试将命令包含在'or中"?有点像

ssh host "ls -l -a .."

这给了我

total 12
drwxr-xr-x  3 root  root  4096 2011-06-16 12:33 .
drwxr-xr-x 22 root  root  4096 2011-06-16 13:40 ..
drwxr-xr-x 49 mihai mihai 4096 2011-07-14 10:33 mihai

意味着它有效

于 2011-07-14T08:23:15.567 回答