2017-08-30 89 views
-2

我需要通過SSHPASS(bash腳本)將變量字符串附加到放置在遠程計算機中的現有文件。sshpass將字符串追加到遠程文件

我試圖

echo "$test" | sshpass -p $pass $host 'cat >> /remote/full/path/log/report.log' 

sshpass -p $pass $host "echo $test" >> /remote/full/path/log/report.log 

沒有什麼作品

+0

sshpass是你自己的bash腳本嗎? –

+0

https://linux.die.net/man/1/sshpass – DanieleO

+1

我認爲主要問題是關閉雙引號的位置,所以下面的工作也應該是這樣的:sshpass -p $ pass $ host「echo $ test >> /remote/full/path/log/report.log「 –

回答

0

我想通了:

sshpass -p $pass' ssh -o StrictHostKeyChecking=no $host "cd /full/path/ && echo $test >> /full/path/report.log" 
0

鑑於在腳本中存儲的口令是一個很大的安全漏洞,這是sshpass語法:

sshpass -p 'your_pass_here' ssh [email protected] 'df -h' 
0

您需要將「StrictHostkeyChecking =無」選項添加到SSH:

echo "$test" | sshpass -p $pass ssh - o StrictHostkeyChecking=0 $host 'cat >> /remote/full/path/log/report.log' 

我不知道爲什麼這個工程,但享受的是bash魔法。笑

旁白:

如果你設置你ssh方式連接到作爲ENVAR $ SSHPASS而不是$傳遞用戶的密碼,然後就可以使用sshpass -e選項。

SSHPASS=$pass 
echo "$test" | sshpass -e ssh - o StrictHostkeyChecking=0 $host 'cat >> /remote/full/path/log/report.log'