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

Bash sshpass将字符串附加到远程文件,bash,shell,ssh,sshpass,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 什么都不管用我想: sshpass -p $pass' ssh -o Str

我需要通过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
什么都不管用

我想:

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

考虑到在脚本中存储密码是一个巨大的安全缺陷,这就是sshpass语法:

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

您需要将“StrictHostkeyChecking=no”选项添加到ssh:

echo "$test" | sshpass -p $pass ssh - o StrictHostkeyChecking=0 $host 'cat >> /remote/full/path/log/report.log'
我不知道为什么会这样,但请享受bash魔法。哈哈

旁白:

如果将要登录的用户的密码设置为envar$SSHPASS而不是$pass,则可以使用SSHPASS-e选项

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

sshpass是您自己的bash脚本吗?我认为主要问题是结束双引号的定位,因此以下内容也应该可以工作:sshpass-p$pass$host“echo$test>>/remote/full/path/log/report.log”