更新时间:2023-05-06 GMT+08:00

部署密钥

当配置了部署密钥(Deploy Key),代码托管服务将允许您通过SSH协议以只读的方式克隆仓库,主要在仓库部署、持续集成等场景中使用。

部署密钥其实就是您本地生成的SSH密钥的公钥,但仓库的部署密钥和SSH密钥不能配置成一个。

  • 多个仓库之间可以使用同一个部署密钥,一个仓库最多可以添加10个不同的部署密钥。
  • 此设置只针对被设置的仓库生效。
  • 只有仓库管理员和仓库所有者能看到这个页面且有设置权限。

部署密钥的设置位于仓库详情中的 设置 > 安全管理 > 部署密钥。您可以理解成在这里配置的密钥是一种对仓库只有只读权限的密钥。

此设置只针对被设置的仓库生效。

单击“设置部署密钥”,以新建部署密钥。

在本地生成密钥的方式请参考如下步骤。

  1. 检查您的计算机是否已经生成了密钥

    在本地Git客户端中执行命令,尝试显示ssh密钥。

    cat ~/.ssh/id_rsa.pub
    • 如果提示“No such file or directory”如下图,则说明您这台计算器没有生成过SSH密钥,请从2向下执行以生成并配置SSH密钥。

    • 如果至少返回了一组密钥如下图,则说明您这台计算机已经生成过SSH密钥,如果想使用已经生成的密钥请直接跳到3,如果想重新生成密钥,请从2向下执行。

  2. 生成SSH密钥

    在本地Git客户端中执行命令以生成新的SSH密钥:
    ssh-keygen -t rsa -C "Your SSH key comment"

    请按照下面提示操作,上图所示为密钥已生成成功。

    • ①首先会提示您输入密钥的存储地址,一般直接回车使用默认即可。
    • ②如果您本地路径下已经有密钥,会询问您是否将其覆盖,输入“n”即选择不覆盖,会退出本次密钥生成操作,输入“y”继续生成密钥,本案例输入“y ”并回车。
    • ③接下来会提示您为密钥设置密码和重新输入密码,如果不想设置密码,直接回车即可。
      • 如果直接回车,不输入命令,则生成的私钥文件id_rsa是明文存储在本地的,请妥善保管。
      • 如果设置passphrase,则生成的私钥文件是AES-128-CBC加密后存储的。(建议使用)

  3. 复制SSH公钥到剪切板

    根据您的操作系统,选择在本地执行命令,可将SSH公钥复制到您的剪切板,以Windows为例,无回显则为复制成功
    • Windows:
      clip < ~/.ssh/id_rsa.pub
    • Mac:
      pbcopy < ~/.ssh/id_rsa.pub
    • Linux (xclip required):
      xclip -sel clip < ~/.ssh/id_rsa.pub