复制期间更改的凭据(jenkins)

jvidinwx  于 2023-04-05  发布在  Jenkins
关注(0)|答案(1)|浏览(137)

我在Jenkins中配置为全局credentail的credentail在复制到远程服务器的过程中被更改。为什么?[“RSA KEY”更改]

j5fpnvbx

j5fpnvbx1#

我发现我只使用了withCredentials(),在复制过程中,它使用base64编码处理密钥信息。
一个可能的解决方案是使用sshagent直接复制。脚本如下。

pipeline {
    agent any

    environment {
        REMOTE_HOST = 'example.com'
        REMOTE_USER = 'remote_user'
        REMOTE_DIR = '/path/to/remote/directory'
        SECRET_KEY_NAME = 'my_rsa_key'
    }

    stages {
        stage('Copy RSA key') {
            steps {
                withCredentials([sshUserPrivateKey(credentialsId: 'ssh-credentials', keyFileVariable: 'SSH_KEY_FILE', passphraseVariable: '', usernameVariable: 'SSH_USERNAME')]) {
                    sshagent(['ssh-credentials']) {
                        sh """
                            set -x
                            scp -i ${SSH_KEY_FILE} ${SECRET_KEY_NAME} ${SSH_USERNAME}@${REMOTE_HOST}:${REMOTE_DIR}
                            ssh -i ${SSH_KEY_FILE} ${SSH_USERNAME}@${REMOTE_HOST} "chmod 600 ${REMOTE_DIR}/${SECRET_KEY_NAME}"
                        """
                    }
                }
            }
        }
    }
}

这解决了我的问题。有趣的是,我试图通过各种资源,并与释义参数混淆。但最后我找到了解决方案与'ChatGPT'。
欢迎大家提供替代方法和解决方案。感谢您宝贵的时间。

相关问题