我遠程服務器上使用的shell中,運行一個簡單的命令。命令執行外殼
我目前登錄myHost01
和我在myHost02
預期的結果運行此命令是this is a test myHost02
。不過,我得到this is a test myHost01
這是我的命令
sshpass -p root ssh -q [email protected] "echo this is a test `hostname`"
我不知道爲什麼它走的是服務器的主機名,我從運行命令!
這也是值得注意的是,當我運行這個
sshpass -p root ssh -q [email protected] "hostname"
我得到myHost02
(這是正確的輸出)
,只是:'SSH ..... @ ...「$ {command}」'。例如:'command = hostname; ssh ........ @ ....「$ {command}」'。注意,它可以很容易地得到TRICKY ...有時最好是1)創建一個本地'the_script'腳本,和2)'scp the_script user @ remotehost:/ tmp/safe_name' 3)'ssh user @ remotehost「/ tmp/safe_name「'。 safe_name是目標機器上唯一的名稱。請注意:其他人可以替換safe_name(尤其是在/ tmp!內)。而在這些做法許多其他潛在的安全漏洞...... –