我在Azure devops中有一个版本化的项目,我想在Jenkins中使用它所具有的Git选项来集成它。但Jenkins给我以下错误:
Failed to connect to repository: Error performing command: git.exe ls-remote -h URL
ncgqoxb01#
由于您使用的是SSH URL,因此请确保:
0yycz8jy2#
许多SO帖子指出,需要在~/.ssh/config文件中添加第4步中列出的以下行,但这个解决方案需要了解更多细节,以了解在Jenkins的上下文中~应该被替换为什么。因此,这里是我解决这个问题的详细步骤。希望这能帮助一些人。
第一步:找出Jenkins的家。
在我的例子中,Jenkins是作为一个服务安装在Ubuntu中的,并且在一个没有密码的用户(jenkins)下运行。
sudo -H -u jenkins bash -c 'echo $HOME'
打印的目录为,/var/lib/jenkins/
/var/lib/jenkins/
步骤2:使用以下命令在Jenkins主目录中生成密钥对。
sudo -H -u jenkins bash -c 'ssh-keygen -t rsa'
这将在Jenkins主目录中生成密钥对,如上所列。
Your identification has been saved in /var/lib/jenkins/.ssh/id_rsa Your public key has been saved in /var/lib/jenkins/.ssh/id_rsa.pub
步骤3:将公钥内容添加到Azure Dev-Ops存储库
这可以通过使用以下Microsoft官方文档来完成[1][2][3][4][5][6][7][8]
步骤4:如果不存在,请在/var/lib/jenkins/.ssh/中创建一个名为config的文件,内容如下
/var/lib/jenkins/.ssh/
Host ssh.dev.azure.com User git PubkeyAcceptedAlgorithms +ssh-rsa HostkeyAlgorithms +ssh-rsa
步骤5:使用私钥在Jenkins中配置凭据以连接到Azure存储库。
这一步很重要,它可以在公钥(在Azure的步骤3中配置)和私钥(在Jenkins的步骤5中配置)之间建立信任。通过以上步骤,我能够成功地从Ubuntu上部署的Jenkins连接到Azure Devops。虽然这是Jenkins+Ubuntu+Azure Devops,但这里可以应用于SSH的关键观察结果是理解:
上面的问题给予了一个框架,用结构化的方式来思考问题,以取得进展。希望这能对某人有所帮助。
2条答案
按热度按时间ncgqoxb01#
由于您使用的是SSH URL,因此请确保:
0yycz8jy2#
许多SO帖子指出,需要在~/.ssh/config文件中添加第4步中列出的以下行,但这个解决方案需要了解更多细节,以了解在Jenkins的上下文中~应该被替换为什么。因此,这里是我解决这个问题的详细步骤。希望这能帮助一些人。
第一步:找出Jenkins的家。
在我的例子中,Jenkins是作为一个服务安装在Ubuntu中的,并且在一个没有密码的用户(jenkins)下运行。
打印的目录为,
/var/lib/jenkins/
步骤2:使用以下命令在Jenkins主目录中生成密钥对。
这将在Jenkins主目录中生成密钥对,如上所列。
步骤3:将公钥内容添加到Azure Dev-Ops存储库
这可以通过使用以下Microsoft官方文档来完成
[1][2][3][4][5][6][7][8]
步骤4:如果不存在,请在
/var/lib/jenkins/.ssh/
中创建一个名为config的文件,内容如下步骤5:使用私钥在Jenkins中配置凭据以连接到Azure存储库。
这一步很重要,它可以在公钥(在Azure的步骤3中配置)和私钥(在Jenkins的步骤5中配置)之间建立信任。
通过以上步骤,我能够成功地从Ubuntu上部署的Jenkins连接到Azure Devops。虽然这是Jenkins+Ubuntu+Azure Devops,但这里可以应用于SSH的关键观察结果是理解:
上面的问题给予了一个框架,用结构化的方式来思考问题,以取得进展。希望这能对某人有所帮助。