首页 > 解决方案 > 在脚本中将 PASSWORD 凭据变量从 Jenkins 传递到 sshpass

问题描述

我在 jenkins 中设置了一些全局凭据,用户名密码类型。

我现在必须将文件 scp 到管道内的目标服务器。

为了争论,假设我的密码变量是secretpassword。

有谁知道如何让密码与 sshpass 一起正常工作?

这是我正在尝试做的事情的要点

sh '''
sshpass -p'${PASSWORD}' scp  ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/
'''

无论我尝试什么,我似乎都无法正确地将密码传递给 sshpass

如果我执行以下操作,它可以正常工作

sh '''
sshpass -p 'secretpassword' scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/
'''

所以我显然只是搞砸了如何让 PASSWORD 环境变量正确吐出到单引号中。

到目前为止,我似乎已经尝试了几千种选择,有人有什么好主意吗?

提前致谢

标签: jenkinssshpass

解决方案


尝试不使用单引号。

sshpass -p ${PASSWORD} scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/

是否有任何特定理由将其保留在单引号中?因为单引号不会插入变量。


推荐阅读