我需要通過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
沒有什麼作品
我需要通過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
沒有什麼作品
我想通了:
sshpass -p $pass' ssh -o StrictHostKeyChecking=no $host "cd /full/path/ && echo $test >> /full/path/report.log"
鑑於在腳本中存儲的口令是一個很大的安全漏洞,這是sshpass語法:
sshpass -p 'your_pass_here' ssh [email protected] 'df -h'
您需要將「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'
sshpass是你自己的bash腳本嗎? –
https://linux.die.net/man/1/sshpass – DanieleO
我認爲主要問題是關閉雙引號的位置,所以下面的工作也應該是這樣的:sshpass -p $ pass $ host「echo $ test >> /remote/full/path/log/report.log「 –