sshpass 将密码拆分为两个字符串,并用密码中的字符“&”分隔

sshpass 将密码拆分为两个字符串,并用密码中的字符“&”分隔

我有一个密码变量 PASS,其值为 abc123&zxcv456 当我尝试使用如下密码变量在 jenkins 中执行 SSH 时

sshpass -p ${PASS} ssh -o StrictHostKeyChecking=no [email protected] 'echo '${PASS}' | sudo -S docker stats --no-stream'

仅解释特殊字符 & 之前的字符串,并且变量 PASS 的值被读取为 abc123,有什么帮助来解决这个问题吗?

PS 我尝试过使用转义字符“${PASS}”,但没有任何进展。

答案1

在 Jenkins Pipeline 中,使用内置凭证存储和sshAgent将您的 SSH 用户名/密码传递给 ssh 命令。

Freestyle 作业的作业配置 GUI 中有一个类似的选项。

答案2

将密码定义为

abc123\&zxcv456

相关内容