Jenkins pipeline Git error: “Host Key Verification Failed” when connecting to remote repository
Jenkins pipeline Git error: “Host Key Verification Failed” when connecting to remote repository
我正在使用我的 PC 作为服务器来使用声明性管道构建我的 Jenkins 脚本。
当 运行 在 git bash 上克隆 git 时,效果很好:
$ git clone ssh://guillaumed@myserver.com:29418/myProjects/thisProject.git ThisFirmware
Cloning into 'ThisFirmware'...
remote: Counting objects: 889, done
remote: Finding sources: 100% (203/203)
Receiving objects: 79% (121769/152721), 48.11 MiB | 10.35 MiB/s
但是运行它通过流水线在同一台机器上:
sh "git clone ssh://guillaumed@myserver.com:29418/myProjects/thisProject.git ThisFirmware"
给我以下错误
[Pipeline] sh
+ git clone ssh://guillaumed@myserver.com:29418/myProjects/thisProject.git ThisFirmware
Cloning into 'ThisFirmware'...
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
有什么提示吗?
为了确保我使用了相同的密钥,多亏了 Jens,管道脚本找不到密钥。
在管道上执行 cat ~/.ssh/id_rsa.pub
,导致 + cat /c/windows/system32/config/systemprofile/.ssh/id_rsa.pub
cat: /c/windows/system32/config/systemprofile/.ssh/id_rsa.pub: No such file or directory
所以我将 ssh 文件从我的 guillaumed 用户 ssh 路径复制到 SYSTEM ssh 路径,但是如果我使用 SYSTEM 用户而不是 guillaumed 用户登录,我将无法使用它。
我需要做什么?
这个link没有帮助。
确实,如果您以 SYSTEM 身份登录,则无法使用 ssh 结帐。
以 "thisUser" 的身份结账:
您需要配置 Jenkins。
1/ 添加用户"thisUser"
2/ 添加用户的 ssh 凭据"thisUser-ssh-credentials"
3/使用ssh-agent插件https://wiki.jenkins.io/display/JENKINS/SSH+Agent+Plugin
然后配置你的管道
dir(server_workspace)
{
sshagent(credentials: ['thisUser-ssh-credentials'] )
{
sh "git clone ssh://thisUser@domain.com:port/yourProjects/thisProject.git"
}
}
我正在使用我的 PC 作为服务器来使用声明性管道构建我的 Jenkins 脚本。
当 运行 在 git bash 上克隆 git 时,效果很好:
$ git clone ssh://guillaumed@myserver.com:29418/myProjects/thisProject.git ThisFirmware
Cloning into 'ThisFirmware'...
remote: Counting objects: 889, done
remote: Finding sources: 100% (203/203)
Receiving objects: 79% (121769/152721), 48.11 MiB | 10.35 MiB/s
但是运行它通过流水线在同一台机器上:
sh "git clone ssh://guillaumed@myserver.com:29418/myProjects/thisProject.git ThisFirmware"
给我以下错误
[Pipeline] sh
+ git clone ssh://guillaumed@myserver.com:29418/myProjects/thisProject.git ThisFirmware
Cloning into 'ThisFirmware'...
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
有什么提示吗?
为了确保我使用了相同的密钥,多亏了 Jens,管道脚本找不到密钥。
在管道上执行
cat ~/.ssh/id_rsa.pub
,导致+ cat /c/windows/system32/config/systemprofile/.ssh/id_rsa.pub cat: /c/windows/system32/config/systemprofile/.ssh/id_rsa.pub: No such file or directory
所以我将 ssh 文件从我的 guillaumed 用户 ssh 路径复制到 SYSTEM ssh 路径,但是如果我使用 SYSTEM 用户而不是 guillaumed 用户登录,我将无法使用它。
我需要做什么?
这个link没有帮助。
确实,如果您以 SYSTEM 身份登录,则无法使用 ssh 结帐。
以 "thisUser" 的身份结账:
您需要配置 Jenkins。
1/ 添加用户"thisUser"
2/ 添加用户的 ssh 凭据"thisUser-ssh-credentials"
3/使用ssh-agent插件https://wiki.jenkins.io/display/JENKINS/SSH+Agent+Plugin
然后配置你的管道
dir(server_workspace)
{
sshagent(credentials: ['thisUser-ssh-credentials'] )
{
sh "git clone ssh://thisUser@domain.com:port/yourProjects/thisProject.git"
}
}