Ssh 使用具有写访问权限的Gitlab部署密钥

Ssh 使用具有写访问权限的Gitlab部署密钥,ssh,gitlab,gitlab-ci,gitlab-ci-runner,Ssh,Gitlab,Gitlab Ci,Gitlab Ci Runner,我目前正在运行CE版本8.17.4,并试图设置一个具有写访问权限的部署密钥(从8.16开始),以便我的runner实例可以将构建工件提交回存储库。我采取了以下步骤来设置它: 在runner实例上,我使用以下命令生成了ssh密钥对: sudo ssh-keygen-t rsa-C“标签”-b 4096 生成的密钥对已保存到/home/gitlab runner/.ssh/id_rsa,并受密码保护 在Gitlab中,我从管理控制台创建了一个公共部署密钥,并将id_rsa.pub的内容粘贴到适当的

我目前正在运行CE版本8.17.4,并试图设置一个具有写访问权限的部署密钥(从8.16开始),以便我的runner实例可以将构建工件提交回存储库。我采取了以下步骤来设置它:

  • 在runner实例上,我使用以下命令生成了ssh密钥对:

    sudo ssh-keygen-t rsa-C“标签”-b 4096

  • 生成的密钥对已保存到/home/gitlab runner/.ssh/id_rsa,并受密码保护

  • 在Gitlab中,我从管理控制台创建了一个公共部署密钥,并将id_rsa.pub的内容粘贴到适当的字段中,并验证密钥指纹是否匹配。我选中了“允许写访问”框
  • 在我希望从运行程序启用存储库访问的私有项目中,我启用了新创建的公共部署密钥
  • 这是一个LaTeX文档响应,因此在.gitlab ci.yml文件中,我在构建pdf后发布以下脚本:

    
    在脚本之后:
    -“git提交-am'autobuild PDF'”
    -“git推送原始主机”
    

提交更改后,生成在亚军上成功运行,直到出现git push origin master命令,并引发以下错误:


致命:对“”的身份验证失败http://gitlab-ci-token:xxxxxxxxxxxxxxxx@host/project.git/'

嗯。有几个问题:

  • 如果部署密钥只是一个SSH密钥,那么它不应该连接到安全端口上吗?或者这有关系吗?我还没有找到很多关于使用这个新的写权限部署关键特性的文档,所以我在上面的步骤中是否遗漏了什么
  • 我是否需要在提交消息中包含[ci skip],以避免循环ci生成?我在该功能的原始发行单中看到了这个问题,但没有看到是否需要此步骤

  • 谢谢你的帮助

    贾瓦德的评论对我很有用:你需要强迫宋承宪。比如说

    git remote add ssh_remote git@host:user/project.git
    git push ssh-remote HEAD:dev
    

    感谢jawad

    ssh密钥用于通过ssh而不是http或https进行连接。您可能需要定义一个通过ssh
    git add remote ssh\u remote连接的新远程设备git@host:user/project.git
    然后推送到那个远程
    git push ssh\u remote master
    可能太晚了,但是您可能想要工件而不是提交它不应该是
    git remote添加ssh\u remote吗git@host:user/project.git