Jenkins不一致(每次文件都会更改)

Jenkins不一致(每次文件都会更改),jenkins,ssh,Jenkins,Ssh,我是詹金斯的新手,仍在努力了解它的实际工作原理 我想做的很简单。每当我将构建推送到Github repo时,我都会触发它 然后,我尝试ssh进入服务器 我的管道如下所示: pipeline { agent any stages { stage('SSH into the server') { steps { withCredentials([sshUserPrivateKey(

我是詹金斯的新手,仍在努力了解它的实际工作原理

我想做的很简单。每当我将构建推送到Github repo时,我都会触发它

然后,我尝试
ssh
进入服务器

我的管道如下所示:

pipeline {
    agent any
    stages {
        stage('SSH into the server') {
            steps {
                withCredentials([sshUserPrivateKey(
                    credentialsId: '<id>',
                    keyFileVariable: 'KEY_FILE')]) {
                    sh '''
                    cd ~/.ssh
                    ls
                    cat ${KEY_FILE} > ./deployer_key.key
                    eval $(ssh-agent -s)
                    chmod 600 ./deployer_key.key
                    ssh-add ./deployer_key.key
                    ssh root@<my-server> ps -a
                    ssh-agent -k
                    '''
                }
            }
        }
    }
}
当我
ls
.ssh
目录中时,它就拥有这些文件。 在成功案例中

成功案例

Masking supported pattern matches of $KEY_FILE
[Pipeline] {
[Pipeline] sh
+ cd /bms/home/pdsint/.ssh
+ ls
authorized_keys
known_hosts
known_hosts.old
+ cat ****
++ ssh-agent -s
+ eval 'SSH_AUTH_SOCK=/tmp/ssh-hb6yX48CJPQA/agent.51702;' export 'SSH_AUTH_SOCK;' 'SSH_AGENT_PID=51703;' export 'SSH_AGENT_PID;' echo Agent pid '51703;'
++ SSH_AUTH_SOCK=/tmp/ssh-hb6yX48CJPQA/agent.51702
++ export SSH_AUTH_SOCK
++ SSH_AGENT_PID=51703
++ export SSH_AGENT_PID
++ echo Agent pid 51703
Agent pid 51703
+ chmod 600 ./deployer_key.key
+ ssh-add ./deployer_key.key
Identity added: ./deployer_key.key (./deployer_key.key)
+ ssh root@<my-server> docker ps -a
Host key verification failed.
+ cd /bms/home/pdsint/.ssh
+ ls
authorized_keys
authorized_keys.bak <----------
known_hosts
known_hosts.old
+ cat ****
++ ssh-agent -s
+ eval 'SSH_AUTH_SOCK=/tmp/ssh-yDNVe51565/agent.51565;' export 'SSH_AUTH_SOCK;' 'SSH_AGENT_PID=51566;' export 'SSH_AGENT_PID;' echo Agent pid '51566;'
++ SSH_AUTH_SOCK=/tmp/ssh-yDNVe51565/agent.51565
++ export SSH_AUTH_SOCK
++ SSH_AGENT_PID=51566
++ export SSH_AGENT_PID
++ echo Agent pid 51566
Agent pid 51566
+ chmod 600 ./deployer_key.key
+ ssh-add ./deployer_key.key
Identity added: ./deployer_key.key (./deployer_key.key)
+ ssh root@<my-server> docker ps -a
Warning: Permanently added '<my-server>' (RSA) to the list of known hosts.
+cd/bms/home/pdsint/.ssh
+ls
授权密钥

authorized_keys.bak您的错误是关于匹配主机密钥(已知的_主机文件),而不是用户密钥(authorized_密钥)。调查您的已知\u主机文件,以检查其包含的密钥是否与服务器匹配。
known\u hosts
文件在Jenkins中生成。有没有办法调查它并在可能的情况下修改它?@raspy还有,
known\u主机
需要包含什么?是我试图访问的服务器的公钥吗?没错。它应该包含服务器的公钥。您收到的消息(
主机密钥验证失败。
)表示已知\u主机文件中的密钥与服务器提供的密钥不匹配。您可以执行
ssh-keyscan>~/.ssh/known\u主机