2011-07-14 74 views
2

我配置像ssh命令鍵(在遠程mashine M1):如何將參數傳遞給SSH命令?

command="/usr/bin/nslookup",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-dss DEADBEEFDEADBEEF= [email protected] 

爲了允許在NSLOOKUP M1從客戶機C1運行。它的工作原理,我可以運行:

C1> ssh -i mylookup_key M1 

,我得到(M1)上使用nslookup執行,但我需要傳遞參數,以獲得真正的工作。我如何將參數傳遞給ssh命令鍵?

p.d:我使用nslookup作爲我想要執行的真實程序的一個示例。

+0

只要把參數字符串中的 「在/ usr/bin中/ NSLOOKUP」 之後? – Jacob

+0

太棒了,它可以工作,但是當iI嘗試在命令中使用參數(如「-h」和ssh作爲自己的參數時),我會收到錯誤。 – Zhen

回答

5

看看在$SSH_ORIGINAL_COMMAND變量,它應該包含傳遞給ssh命令。例如:

command="/usr/bin/nslookup $SSH_ORIGINAL_COMMAND",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-dss DEADBEEFDEADBEEF= [email protected] 

然後嘗試:

$ ssh -i mylookup_key M1 stackoverflow.com 
0

您是否試過在'"附上命令? Soemthing像

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 

這意味着它的工作原理

0

如果我理解正確的話你只是想在遠程機器上運行命令。 簡單的情況是隻傳遞命令的最後一個參數到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 
相關問題