我在Jenkins中配置为全局credentail的credentail在复制到远程服务器的过程中被更改。为什么?[“RSA KEY”更改]
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'。欢迎大家提供替代方法和解决方案。感谢您宝贵的时间。
1条答案
按热度按时间j5fpnvbx1#
我发现我只使用了withCredentials(),在复制过程中,它使用base64编码处理密钥信息。
一个可能的解决方案是使用sshagent直接复制。脚本如下。
这解决了我的问题。有趣的是,我试图通过各种资源,并与释义参数混淆。但最后我找到了解决方案与'ChatGPT'。
欢迎大家提供替代方法和解决方案。感谢您宝贵的时间。