我配置一个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命令键?
p.d:我正在使用nslookup作为我想要执行的真实程序的一个例子。
答案 0 :(得分:5)
查看$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
答案 1 :(得分:0)
您是否尝试将命令括在'
或"
中?像
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
意味着它有效
答案 2 :(得分:0)
如果我理解正确,您只想在远程计算机上运行命令。 简单的情况是将命令作为最后一个参数传递给ssh
ssh -i mylookup_key M1 nslookup stackoverflow.com
但是你可能需要小心引用和特殊字符。 e.g。
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