Continuous integration 从Go CI/CD连接Gitlab

Continuous integration 从Go CI/CD连接Gitlab,continuous-integration,gitlab,Continuous Integration,Gitlab,我正在尝试使用GO CI/CD管道从gitlab克隆一个项目。我做的步骤如下: 我已经有了添加到gitlab的ssh密钥 尝试从本地计算机克隆,我可以使用“git clone”命令进行克隆 我还使用命令“gitclone”在Go代理服务器上进行了尝试,并在那里克隆了project 克隆项目后,我打开了ssh文件夹,并用一些密钥修改了“known_hosts”文件。因此,我将ssh文件夹放在了“C:\Windows\System32\config\systemprofile”位置,因为GO-CD管

我正在尝试使用GO CI/CD管道从gitlab克隆一个项目。我做的步骤如下:

  • 我已经有了添加到gitlab的ssh密钥
  • 尝试从本地计算机克隆,我可以使用“git clone”命令进行克隆
  • 我还使用命令“gitclone”在Go代理服务器上进行了尝试,并在那里克隆了project
  • 克隆项目后,我打开了ssh文件夹,并用一些密钥修改了“known_hosts”文件。因此,我将ssh文件夹放在了“C:\Windows\System32\config\systemprofile”位置,因为GO-CD管道看起来只在那里
  • 但每当我试图测试管道的连接时,它就会说访问被拒绝。下面是错误
  • :


    我还尝试运行命令
    ssh-Tgit@gitlab.demo.com
    但它显示“权限被拒绝(公钥)。”。谁能告诉我为什么?我缺少什么配置?

    如果使用默认名称id\u rsa创建了密钥,请尝试将其复制到C:\Windows\SysWOW64\config\systemprofile.ssh()

    如果在重新启动服务后无法使用,或者如果您认为需要使用多个标识,以下内容可能会有所帮助:

    我假设重新启动Go CD服务器服务不起作用,并且您正在使用默认的本地系统帐户运行Go服务器服务。我更喜欢使用域帐户运行,因为这有助于解决一些棘手的权限问题和此类配置。首先看看这个答案:

    如果您在服务帐户下运行,您的RSA密钥通常会写入~/.ssh/-中,这可能会转换为:C:/Users/your account/.ssh。如果此文件夹不存在,请在管理模式下打开命令窗口,将cd刻录到您的帐户文件夹,然后运行mkdir.ssh

    当Go CD使用SSH连接到Git存储库时,它使用Git命令,而Git命令又调用SSH命令。对于所有这些层,有许多方法来配置要使用的一个或多个标识。首先要阅读的一篇文章是()注意sshCommand如何通过指定rsa文件的文件路径来覆盖git将使用的标识

    与直接编辑git配置不同,我认为编辑全局ssh配置将更好地处理多个标识/密钥,并且Go CD将更容易处理。看见默认情况下,ssh配置文件位于~/.ssh/config。如果没有,请创建一个名为config的文本文件,不带任何扩展名。编辑该文件并添加一个条目,该条目指定您的身份文件(RSA密钥)或多个文件的路径。例如():

    这将建立可用于材质的主体别名。因此,与其使用git@gitlab.com/pathtorepo,你会用git@github_username2/如果您使用的是上面显示的第二台主机,则为pathtorepo

    在进行更改后,始终让您的Go CD服务恢复正常,以防万一

    Repository ssh://git@gitlab.demo.com/exampleproject/someproject.git not found! : 
    Error performing command: --- Command ---
    git ls-remote ssh://git@gitlab.demo.com/exampleproject/someproject.git
    --- Environment ---
    {}
    --- INPUT ----
    
    
    --OUTPUT ---
    
    --- ERROR ---
    STDERR: Host key verification failed.
    STDERR: fatal: Could not read from remote repository.
    STDERR: 
    STDERR: Please make sure you have the correct access rights
    STDERR: and the repository exists.
    
      Host github_username1
        Hostname github.com
        User git
        IdentityFile ~/.ssh/rsa_1
      Host github_username2
        Hostname github.com
        User git
        IdentityFile ~/.ssh/rsa_2