GitHub Deploy Key 的使用

Deploy Key 可以允许服务器 (Server) 直接从对应仓库 (repository) 上拉取 (pull) 项目甚至是对项目进行更改(需要勾选 Allow write access)而无需使用账号密码登录。

简介

参考 GitHub 官方文档,使用 Deploy Key 有以下几个优缺点:

优点

  1. 任何能访问该仓库和服务器的人都可以部署此项目;
  2. 用户无需更改他们本地的 SSH 设置;
  3. Deploy Key 默认只允许读取操作,但你也可以在仓库设置中将其改为允许写入操作。

缺点

  1. Deploy Key 一次只能授予一个仓库访问权限。对于一些复杂的项目而言可能会需要对多个仓库设置 Deploy Key 以使 Server 能将这些仓库的内容拉取下来;
  2. Deploy Key 往往没有额外的口令 (passphrase) 进行保护,因此对于弱保护的服务器而言存在安全隐患。

步骤

  1. 生成 SSH 密钥对。
  2. 在 GitHub 网站的右上方点击自己的头像并选择 Your profile
  3. 在个人页面,点击 Repositories 访问自己所有的仓库,并选中你想设置的那个仓库。
  4. 在仓库主页,点击 Settings
  5. 在侧边栏,点击 Deploy Keys,并点击 Add deploy key
  6. title一栏的内容可以随意填写(往往填写一个备注名用以助记对应的服务器是哪一台)。将 步骤 1 中的公钥(默认名为 id_rsa.pub)里的内容粘贴到第二栏。
  7. 如果需要允许写入操作,勾选 Allow write access
  8. 点击 Add key 完成 Deploy Key 添加操作。

使用 Deploy Key 拉取仓库内容

  1. 在仓库主页,点击 Clone or download,如果默认打开的悬浮窗内的链接以 https:// 开头,则选择右上方的 Use SSH,会看到类似以下的以 git@github.com 开头的链接,点击图标复制链接到剪贴板。

  1. 在生成 Deploy Key 服务器上,使用 git clone 命令将仓库内容拉取到当前文件夹,例如

    1
    git clone git@github.com:BrandoZhang/STAr_Web_Server.git

    则会将用户名为 BrandoZhangSTAr_Web_Server 仓库拉取到本地。

参考

https://developer.github.com/v3/guides/managing-deploy-keys/#deploy-keys


GitHub Deploy Key 的使用
https://brando.dev/zh-hans/2019/02/27/GitHub-Deploy-Key-的使用/
作者
Brando ZHANG
发布于
2019年2月27日
许可协议