【发布时间】:2019-08-28 19:42:16
【问题描述】:
在我的 Jenkins 工作中,在构建阶段,我执行 pip install -r requirements.txt。在我的项目要求中,有一些通往私有 git 存储库的路径,需要 SSH 密钥进行身份验证。我已经创建了密钥(没有密码),将公钥添加到 BitBucket 服务器,并将私钥添加到 Jenkins 的凭据中。
我的项目代码使用相同的 SSH 密钥成功提取(在内部,Jenkins 使用 GIT_SSH),但 pip 不知道将它们传递给服务器进行身份验证(日志显示:Permission denied (publickey))
我见过 Use SSH Key from Jenkins Git Plugin to Run Git Commands During Build ,但没有人回答。我还看到了一些关于 Publish Over SSH 插件的其他讨论,但我不确定它是否适用于我..
顺便说一句,构建机器是 Windows。
自动将私钥写入<home_folder>\.ssh\id_rsa 对我来说似乎是一种安全风险,尽管我可能错了..?
有没有办法将 Jenkins 配置为使用与 pip install ssh 条目相同的 SSH 密钥?
【问题讨论】:
-
另一个不涉及密钥的可能解决方法是将您的用户名/密码添加到 Windows 凭据管理器并使用 https 而不是 ssh。我遇到了完全相同的问题,这是迄今为止最耗时的解决方案。
标签: git jenkins ssh pip requirements.txt