GitHub Deploy Key 的使用
Deploy Key 可以允许服务器 (Server) 直接从对应仓库 (repository) 上拉取 (pull) 项目甚至是对项目进行更改(需要勾选 Allow write access
)而无需使用账号密码登录。
简介
参考 GitHub 官方文档,使用 Deploy Key 有以下几个优缺点:
优点
- 任何能访问该仓库和服务器的人都可以部署此项目;
- 用户无需更改他们本地的 SSH 设置;
- Deploy Key 默认只允许读取操作,但你也可以在仓库设置中将其改为允许写入操作。
缺点
- Deploy Key 一次只能授予一个仓库访问权限。对于一些复杂的项目而言可能会需要对多个仓库设置 Deploy Key 以使 Server 能将这些仓库的内容拉取下来;
- Deploy Key 往往没有额外的口令 (passphrase) 进行保护,因此对于弱保护的服务器而言存在安全隐患。
步骤
- 生成 SSH 密钥对。
- 在 GitHub 网站的右上方点击自己的头像并选择
Your profile
。 - 在个人页面,点击
Repositories
访问自己所有的仓库,并选中你想设置的那个仓库。 - 在仓库主页,点击
Settings
。 - 在侧边栏,点击
Deploy Keys
,并点击Add deploy key
。 title
一栏的内容可以随意填写(往往填写一个备注名用以助记对应的服务器是哪一台)。将步骤 1
中的公钥(默认名为id_rsa.pub
)里的内容粘贴到第二栏。- 如果需要允许写入操作,勾选
Allow write access
。 - 点击
Add key
完成 Deploy Key 添加操作。
使用 Deploy Key 拉取仓库内容
- 在仓库主页,点击
Clone or download
,如果默认打开的悬浮窗内的链接以https://
开头,则选择右上方的Use SSH
,会看到类似以下的以git@github.com
开头的链接,点击图标复制链接到剪贴板。
在生成 Deploy Key 服务器上,使用
git clone
命令将仓库内容拉取到当前文件夹,例如1
git clone git@github.com:BrandoZhang/STAr_Web_Server.git
则会将用户名为
BrandoZhang
的STAr_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-的使用/