Jenkins凭据导出

凭据简介

Jenkins在调用svn、ssh等第三方工具时需要账号密码等信息。如果在调用第三方工具时在流水线脚本中直接传递这些敏感信息,既不方便,也有安全隐患。

基于此,Jenkins可以将这些敏感信息存储为凭据,然后在项目中通过凭据ID引用,安全且便于复用。

作为Jenkins管理员,某些情况下你可能面临账号密码等信息遗失的情况,或者你压根不知道其中的某些敏感信息,例如该信息由另外的系统管理员配置。此时,由于信息已被加密,你无法通过Jenkins的凭据管理直接查看到相关信息。如果需要查看这些敏感信息,需要借助Jenkins的脚本命令行工具。

需要说明的是,Jenkins使用对称加密算法来加密字符串,不同的Jenkins安装实例使用不同的加密密钥,因此,相同的内容在不同的Jenkins实例上加密后密文并不相同。

凭据导出

Jenkins > 系统管理 > 工具和动作 > 脚本命令行

执行以下脚本可将全部凭据信息解密导出:

com.cloudbees.plugins.credentials.SystemCredentialsProvider.getInstance().getCredentials().forEach {

  it.properties.each { prop, val ->

    println(prop + ' = "' + val + '"')

  }

  println("#########################")

}

加密和解密

Jenkins的凭据信息存储于根目录的credentials.xml文件中。

可以直接取出对应账号的密文进行解密:

Jenkins > 系统管理 > 工具和动作 > 脚本命令行

加密(示例中对字符串“abcd”执行了加密):

println(hudson.util.Secret.fromString("abcd").getEncryptedValue())

解密(示例中对字符串“abcd”的密文执行了解密):

println(hudson.util.Secret.fromString("{AQAAABAAAAAQt33hpeqAVUbJtq/BDWocriigjpYDaQJOztbG/tO6JPA=}").getPlainText())

猜你喜欢

转载自blog.csdn.net/Dancen/article/details/125211186