惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
博客园 - 聂微东
J
Java Code Geeks
Engineering at Meta
Engineering at Meta
Jina AI
Jina AI
D
Docker
B
Blog
S
SegmentFault 最新的问题
宝玉的分享
宝玉的分享
D
DataBreaches.Net
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Y
Y Combinator Blog
N
Netflix TechBlog - Medium
月光博客
月光博客
F
Fortinet All Blogs
爱范儿
爱范儿
H
Help Net Security
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
The Cloudflare Blog
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
U
Unit 42

mephisto.cc

修复rime-ice无法弹出候选框的问题 开机滚动字体显示优化 个人网站安全防护 树莓派上部署Vaultwarden 使用goaccess实时分析Caddy日志 个人网站监控 Hugo全站AVIF记 Linux下尝试使用Godot开发小游戏 Arch linux dae 透明代理 Airflow接管galler-dl下载任务 如何使用gallery-dl批量下载图像 Arch核显下如何愉快玩Dota2和CS2 Arch/labwc 环境网络相关设置 Rime添加dota2词库 Arch 重装记录 Supertuxkart iOS版终于发布了 打造自己的流媒体音乐服务 剪切板管理工具clipcat推荐 MangoHud性能监控 微信小程序开发记 Rofi试用 解决Arch下VSCode无法输入中文的问题 独立窗口管理器下无法录屏问题处理 上海市二手房成交数据监控 OpenLDAP监控 Arch linux如何顺畅连接蓝牙设备 使用Git和Ansible管理配置文件 Arch Linux SSL VPN 客户端配置 简单获取celery任务实时结果 Arch linux下iNode客户端的安装和使用方法
Github同主机多仓库部署deploy key问题处理
2022-11-04 · via mephisto.cc

我的多个站点运行在同一个主机上,对应多个 github 私有仓库,打包部署使用 deploy key,尴尬的是 github 限制每个仓库必须用不同的 key,如果使用主机上面默认的那个 key,大部分时候会遇到错误提示:

1    ~ git clone git@github.com:kmephistoh/xxxx.git
2    Cloning into 'xxxx'...
3    ERROR: Repository not found.
4    fatal: Could not read from remote repository.
5
6    Please make sure you have the correct access rights
7    and the repository exists.

若要同一个主机使用 deploy key 部署多个仓库

首先,创建多个 key

比如使用 ssh-keygen 创建多个密钥对,把对应的公钥(xxx.pub 的文件)放到 github 的 deploy key 中去,千万不要说你找不到在哪里啊……

 1    ➜  ssh-keygen
 2    Generating public/private rsa key pair.
 3    Enter file in which to save the key (/home/mephisto/.ssh/id_rsa): keyone
 4    Enter passphrase (empty for no passphrase):
 5    Enter same passphrase again:
 6    Your identification has been saved in keyone
 7    Your public key has been saved in keyone.pub
 8    The key fingerprint is:
 9    SHA256:EMDob/6SzsSOUGIdEqEUYLeSAIdJczUbl6HeLDUnthY mephisto@workpc
10    The key's randomart image is:
11    +---[RSA 3072]----+
12    |B@+=o=.oo        |
13    |B.B o *o         |
14    |.= o o.E .       |
15    |  = o =.*        |
16    |...o o =S        |
17    |.o .o o          |
18    |.  oo.           |
19    | . =+            |
20    |  ..+o.          |
21    +----[SHA256]-----+
22
23    ➜  ls -al keyone*
24    -rw------- 1 mephisto mephisto 2602 Nov  4 18:19 keyone
25    -rw-r--r-- 1 mephisto mephisto  569 Nov  4 18:19 keyone.pub

使用同样方法创建另外一个 key,不操作演示了

其次,配置~/.ssh/config 文件

示例如下:

1    Host github.com-repo-1
2            Hostname github.com
3            IdentityFile=/home/user/.ssh/repo-1_deploy_key
4
5    Host github.com-repo-2
6            Hostname github.com
7            IdentityFile=/home/user/.ssh/repo-2_deploy_key
  • Host github.com-repo-1 # 仓库别名(这个别名很关键)
  • Hostname github.com # github 域名
  • IdentityFile=/home/user/.ssh/repo-1_deploy_key # 仓库使用的私钥

最后,使用别名拉取代码

注意,github.com-repo-1 就是上面的别名,仔细看,替换了@和:之间的字符串,不得不说 github 也是会玩。示例如下:

1    $ git clone git@github.com-repo-1:OWNER/repo-1.git

这样设置后,你就可以正常部署代码了, 官方文档https://docs.github.com/en/developers/overview/managing-deploy-keys

我想一个密钥对走天下,怎么办?理论上可以把个人主力电脑的密钥对放到服务器上面去,就像你在本地电脑操作一样,但是这样有安全风险,所以老实按照官方文档处理,方便和安全总是有点矛盾,除非不在乎。