How do I enable cloning over SSH for a Gitlab runner?

前端 未结 3 1496
醉话见心
醉话见心 2020-12-31 00:35

I am having some trouble cloning large repositories over HTTP on my Windows Gitlab runner. I\'ve tried several methods to do shallow clones or disable clone compression. Sti

3条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-31 01:18

    According to:

    https://docs.gitlab.com/ee/ci/ssh_keys/README.html

    You need to:

    1. Create a new SSH key pair with ssh-keygen
    2. Add the private key as a Secret Variable to the project
    3. Run the ssh-agent during job to load the private key.

    Example gitlab_ci.yml:

    before_script:
      # Install ssh-agent if not already installed, it is required by Docker.
      # (change apt-get to yum if you use a CentOS-based image)
      - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
    
      # Run ssh-agent (inside the build environment)
      - eval $(ssh-agent -s)
    
      # Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
      - ssh-add <(echo "$SSH_PRIVATE_KEY")
    
      # For Docker builds disable host key checking. Be aware that by adding that
      # you are suspectible to man-in-the-middle attacks.
      # WARNING: Use this only with the Docker executor, if you use it with shell
      # you will overwrite your user's SSH config.
      - mkdir -p ~/.ssh
      - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
      # In order to properly check the server's host key, assuming you created the
      # SSH_SERVER_HOSTKEYS variable previously, uncomment the following two lines
      # instead.
      # - mkdir -p ~/.ssh
      # - '[[ -f /.dockerenv ]] && echo "$SSH_SERVER_HOSTKEYS" > ~/.ssh/known_hosts'
    

提交回复
热议问题