为容器化的GoCD配置SSH密钥

    您的查询搜索没有结果。

    使用SSH密钥在容器化的GoCD服务器和代理中访问GoCD材料。

    如果你已将Git仓库配置为GoCD的材料,那么有多种方式让GoCD访问该仓库。其中一种流行的方法是配置SSH密钥。当使用Docker作为GoCD服务器和代理时,这一过程会稍微复杂一些。以下是配置SSH密钥的步骤,这些密钥可以同时用于多个容器。

    • 使用gocd-server镜像创建一个Docker容器:
    docker run -itd -v/some/location/on/host:/home/go/.ssh gocd/gocd-server:v18.12.0
    

    容器启动后,会提供容器ID。

    • go用户身份进入容器
    docker exec -it -u go -w /home/go <container_id> /bin/bash
    
    • go用户生成SSH密钥。
    ssh-keygen -t rsa -b 4096 -C "something to identify this key: like an email address"
    

    执行上述命令后,你会注意到在/home/go/.ssh目录下创建了两个文件,id_rsaid_rsa.pub.

    id_rsa对应于私钥,稍后你可以将其提供给GoCD以访问私有仓库。id_rsa.pub是公钥,需要添加到你的SCM账户中。

    按照以下提供的说明为各自的提供商添加新的SSH密钥:

    GitHub:https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/

    Bitbucket:https://confluence.atlassian.com/bitbucket/set-up-an-ssh-key-728138079.html

    GitLab:https://docs.gitlab.com/ee/gitlab-basics/create-your-ssh-keys.html

    • 将公钥添加到你的账户后,尝试通过执行git clone来访问私有仓库,使用SSH协议。大多数SCM在你通过浏览器访问仓库时会提供通过SSH克隆的命令。当你第一次执行git clone命令时会出现提示。选择“是”并继续克隆过程。这将创建一个名为known_hosts/home/go/.ssh的文件。或者使用ssh-keyscan命令来创建known_hosts.
    ssh-keyscan [host] > /home/go/.ssh/known_hosts
    

    ,其中[host]可以是github.com、bitbucket.com、gitlab.com等。

    • 中文件的所有权和权限是:/home/go/.ssh is:
    -rw-------    1 go       go            3243 Jan 11 07:00 id_rsa
    -rw-r--r--    1 go       go             754 Jan 11 07:00 id_rsa.pub
    -rw-r--r--    1 go       go             407 Jan 11 07:01 known_hosts
    

    They should 不应被篡改。

    • 在主机上,相同的文件如下所示:
    ls -l /some/location/on/host
    total 24
    -rw-------  1 1000  1000  3243 Jan 10 23:10 id_rsa
    -rw-r--r--  1 1000  1000   754 Jan 10 23:10 id_rsa.pub
    -rw-r--r--  1 1000  1000   407 Jan 10 23:10 known_hosts
    

    上述内容适用于Linux。如果你在主机上有UID和GID为1000的用户,则可能略有不同。对于Mac,外观可能会略有不同。

    • 在多个容器中使用

    现在已经为go创建了SSH密钥,你可以在不同的GoCD服务器和代理中使用它们。

    docker run -itd -v/some/location/on/host:/home/go/.ssh gocd/gocd-server:v18.12.0
    docker run -itd -v/some/location/on/host:/home/go/.ssh gocd/gocd-agent-alpine-3.6:v18.12.0