sshpass将字符串附加到远程文件

时间:2017-08-30 09:03:48

标签: bash shell ssh sshpass

我需要通过SSHPASS(bash脚本)将变量字符串附加到远程计算机中的现有文件中。

我试过

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

无效

3 个答案:

答案 0 :(得分:1)

您需要在ssh:

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

我不知道为什么会这样,但享受bash魔法。大声笑

ASIDE:

如果您将正在搜索的用户的密码设置为envar $ SSHPASS而不是$ pass,那么您可以使用sshpass -e选项。

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

答案 1 :(得分:0)

我想通了:

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

答案 2 :(得分:0)

鉴于在脚本中存储密码是一个很大的安全漏洞,这是sshpass语法:

sshpass -p 'your_pass_here' ssh user@domain 'df -h'