我正在尝试使用gitlab CI/CD在按下特定分支(在我的例子中是“暂存”分支)之后,自动部署我的代码。
在按下“暂存”分支后,我在gitlab UI中看到以下作业部分的错误:
Running with gitlab-runner 15.0.0 (xxxxxx)
on deploy xxxxxx
Preparing the "ssh" executor
00:36
Using SSH executor...
ERROR: Preparation failed: ssh command Connect() error: ssh Dial() error: ssh: handshake failed: knownhosts: key is unknown我可以从我的VM和gitlab -运行之前成功注册的gitlab。
我还创建了ssh键,并将其添加到gitlab-runner安装步骤中。
发布于 2022-06-12 16:15:47
您需要检查在您的情况下使用了什么SSH URL。
类似于git@gitlab.com:me/myProject的东西会在~/.ssh/known_hosts文件中查找gitlab.com SSH主机密钥指纹。
确保在gitlab服务器中首先向~/.ssh/known_hosts添加以下内容
gitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf
gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9
gitlab.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY=这将跳过手动指纹确认在SSH。
换句话说,不再是"knownhosts: key is unknown“了。
请注意,使用GitLab 15.3 (2022年8月),您将更容易找到以下内容:
与SSH指纹的新链接 由于SSH配置页面和文档中的新链接,您的GitLab SSH指纹现在更容易找到了。 谢谢安德烈亚斯·迪卡的贡献!

发布于 2022-10-21 14:04:53
对于仍然遇到这个问题的人:在我们的例子中,原因是known_host文件中的主机名和toml文件中的主机名之间的区别。他们必须是完全合格的或都不合格的。
https://stackoverflow.com/questions/72590691
复制相似问题