使用 GitHub 部署密钥部署代码

咸鱼 发布于 2024-06-16 61 次阅读


AI 摘要

使用 GitHub 部署密钥部署代码时,需生成专用 SSH 密钥(如 `id_rsa_github`),将其公钥上传至目标仓库的「Deploy keys」设置。服务器端需创建权限为 600 的 `~/.ssh/config` 文件,配置 `Host github.com` 指向仓库地址,指定用户 `git` 和密钥路径。此密钥仅允许仓库读取,避免与常规 SSH 密钥混用,确保部署安全。

当配置了部署密钥【1】,代码托管服务将允许您通过 SSH 协议【2】以只读【3】的方式克隆仓库,主要在仓库部署、持续集成【4】等场景中使用
部署密钥其实就是 SSH 密钥【5】的公钥【6】,但仓库的部署密钥和 SSH 密钥不能配置成一个,如果配置成同一个那么会有安全问题。

生成 SSH 密钥

首先查看自己的本地是否已经有密钥 ls -al ~/.ssh/ 记住文件名称。
然后运行 ssh-keygen -t rsa -b 4096 -C "github" 来生成一个密钥。

ssh-keygen -t rsa -b 4096 -C "github"
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa):

在提示到选择自己的密钥名称的时候,请选择一个和自己之前的文件名称不同的文件名(如果您本地路径下已经有密钥,会询问您是否将其覆盖,输入 n 即选择不覆盖,会退出本次密钥生成操作,输入 y 继续生成密钥),你可以选择将文件名改为 id_rsa【7】_GitHub【9】

将密钥上传至 GitHub

在 GitHub 上选择自己想部署的仓库,选择 Settings【10】>Deploy keys【11】>Add deploy key【12】 创建一个喜欢的名字并把你的公钥粘贴进去,GitHub 会自己检查公钥的合法性。

配置服务器使用部署密钥

创建一个名称为 config【13】 的配置文件,权限是 600,用户是 root【14】
将以下代码粘贴进配置文件中:

Host github.com
Hostname github.com
User git
IdentityFile ~/.ssh/id_rsa_github
路漫漫其修远兮,吾将上下而求索
最后更新于 2026-04-11