【发布时间】:2023-03-12 11:55:01
【问题描述】:
我想通过 SSH 连接到服务器以在我的 Jenkins 管道中执行一些任务。
这是我经历的步骤。
- 在我的远程服务器中,我使用
ssh-keygen创建了id_rsa和id_rsa.pub - 我复制了
id_rsa中的字符串并粘贴到我的Jenkins 服务器的Global Credentials菜单中的Private Key字段。
-
在我的 Jenkinsfile 中,我这样做了
stage('SSH into the server') { steps { withCredentials([sshUserPrivateKey( credentialsId: '<ID>', keyFileVariable: 'KEY_FILE')]) { sh ''' more ${KEY_FILE} cat ${KEY_FILE} > ./key_key.key eval $(ssh-agent -s) chmod 600 ./key_key.key ssh-add ./key_key.key cd ~/.ssh echo "ssh-rsa ... (the string from the server's id_rsa.pub)" >> authorized_keys ssh root@<server_name> docker ps ''' } } }
它几乎使用远程服务器的私钥创建了一个ssg-agent,并将一个公钥添加到授权密钥中。
结果给了我Host key verification failed
我只是想通过 ssh 进入远程服务器,但我一直面临这个问题。有什么帮助吗?
日志
++ ssh-agent -s
+ eval 'SSH_AUTH_SOCK=/tmp/ssh-xfcQYEfiyfRs/agent.26353;' export 'SSH_AUTH_SOCK;' 'SSH_AGENT_PID=26354;' export 'SSH_AGENT_PID;' echo Agent pid '26354;'
++ SSH_AUTH_SOCK=/tmp/ssh-xfcQYEfiyfRs/agent.26353
++ export SSH_AUTH_SOCK
++ SSH_AGENT_PID=26354
++ export SSH_AGENT_PID
++ echo Agent pid 26354
Agent pid 26354
+ chmod 600 ./key_key.key
+ ssh-add ./key_key.key
Identity added: ./key_key.key (./key_key.key)
+ ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ./key_key.key root@<server> docker ps
Warning: Permanently added '<server>, <IP>' (ECDSA) to the list of known hosts.
WARNING!!!
READ THIS BEFORE ATTEMPTING TO LOGON
This System is for the use of authorized users only. ....
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
【问题讨论】: