Jenkins从站无法从Gitlab克隆

Jenkins从站无法从Gitlab克隆

我在 AWS 上有一个自动扩展的 Jenkins 集群,它通过 JNLP 生成并运行代理。主服务器和从服务器都在 Ubuntu 上运行。我不太明白 Jenkins 实际上将 Gitlab 的 SSH 密钥存储在何处,或者从服务器是否/如何使用它。每当我在从服务器上运行 Jenkins 作业时,我都会得到以下信息:

git clone [email protected]/myproject.git 
Cloning into 'build-scripts'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我可以通过 SSH 连接到从服务器并手动运行相同的命令来确认行为。从服务器 .jar 以“Jenkins”用户身份运行,但当我是默认的“ec2-user”、“Jenkins”用户,甚至作为 root 用户时,我无法使用 Git 克隆。我安装了 Git 插件、Git Credentials 插件和 Git Server 插件,我之前认为它们会在启动时将密钥复制到从服务器。我能够从主服务器运行完全相同的 SSH 命令,并且它运行良好,并且主服务器能够与 Git 通信以将存储库克隆为多分支管道。

这可能是一个简单的解决方案,但我有点困惑。有人知道需要什么才能允许从属服务器 SSH/将密钥复制到可用的地方吗?

答案1

我猜是你的 ssh 密钥没有添加到你的 github 帐户中,或者 Jenkins 从属进程使用的用户与你从命令行运行 git 时使用的用户不同。如果是这种情况 - 你需要将 ssh 密钥添加到你的 github 帐户,或者需要批准该用户的初始主机密钥验证,然后才能在 Jenkins 中运行 git。(你知道 - 第一次使用 ssh 连接时收到的消息:

相关内容