如何在Jenkins shell脚本中以安全的方式传递密码?

如何在Jenkins shell脚本中以安全的方式传递密码?,shell,maven,jenkins,ssh,jenkins-pipeline,Shell,Maven,Jenkins,Ssh,Jenkins Pipeline,我的jenkins作业中有一个shell脚本,它在成功构建之后执行 sshpass-p“mypassword”ssh-o StrictHostKeyChecking=否myusername@myhostname“cd/opt/temp/test/&&./stop services.sh” 此脚本对于转到目标服务器中的特定目录并运行.sh文件非常有用。这很好用。我唯一的问题是,在每次构建之后,jenkins日志(控制台输出)中都可以看到密码 如果有任何其他方法可以避免此密码在日志中的可见性,或者有

我的jenkins作业中有一个shell脚本,它在成功构建之后执行

sshpass-p“mypassword”ssh-o StrictHostKeyChecking=否myusername@myhostname“cd/opt/temp/test/&&./stop services.sh”

此脚本对于转到目标服务器中的特定目录并运行.sh文件非常有用。这很好用。我唯一的问题是,在每次构建之后,jenkins日志(控制台输出)中都可以看到密码

如果有任何其他方法可以避免此密码在日志中的可见性,或者有任何其他方法可以将其传递给脚本,是否有人可以帮助我

谢谢和问候,
Somi J.

Jenkins有一个凭证存储,可供


哪个是最安全的方法…

for
sshpass
说,“在所有sshpass选项中,-p选项应该被认为是最不安全的…鼓励编写程序以编程方式传递密码的人使用匿名管道,并使用-d选项将管道的读取端传递给sshpass”。给出了如何创建和使用包含密码的加密文件的说明,但我的工作不是管道,而是Maven项目。maven项目还有其他方法吗Jenkins中有一个插件调用凭据提供程序插件,但我建议使用管道,因为它更灵活,还有其他优势。。。
node {
  withCredentials([usernameColonPassword(credentialsId: 'mylogin', variable: 'USERPASS')]) {
    sh ( 'curl -u "$USERPASS" https://private.server/ > output' )
  }
}