我无法将Azure在Jenkins的回购联系起来

zi8p0yeb  于 2022-11-02  发布在  Jenkins
关注(0)|答案(2)|浏览(176)

我在Azure devops中有一个版本化的项目,我想在Jenkins中使用它所具有的Git选项来集成它。
但Jenkins给我以下错误:

Failed to connect to repository: 
  Error performing command: git.exe ls-remote -h URL

ncgqoxb0

ncgqoxb01#

由于您使用的是SSH URL,因此请确保:

0yycz8jy

0yycz8jy2#

许多SO帖子指出,需要在~/.ssh/config文件中添加第4步中列出的以下行,但这个解决方案需要了解更多细节,以了解在Jenkins的上下文中~应该被替换为什么。因此,这里是我解决这个问题的详细步骤。希望这能帮助一些人。

第一步:找出Jenkins的家。

在我的例子中,Jenkins是作为一个服务安装在Ubuntu中的,并且在一个没有密码的用户(jenkins)下运行。

sudo -H -u jenkins bash -c 'echo $HOME'

打印的目录为,/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的文件,内容如下

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的关键观察结果是理解:

  • 尝试通过SSH进行连接的进程是什么?
  • 正在运行进程的用户是谁?
  • #2中的用户的主目录是什么?
  • 该用户是否有SSH密钥对?
  • 该密钥对的公钥是否受遥控器的信任?

上面的问题给予了一个框架,用结构化的方式来思考问题,以取得进展。希望这能对某人有所帮助。

相关问题