2008年6月21日

有备无患:在 GitHub 上用不同的 SSH 公钥部署多个应用

GitHub 是一个免费的基于 git 的开源软件仓库托管服务,包括 Ruby on RailsRspecPrototype 在内的许多开源软件都在 GitHub 上架设了软件仓库。


如果你有两个或两个以上的 GitHub 仓库,并且想用不同的公钥/私钥来管理这些仓库的话,会遇到这样一个问题。当你 clone 第一个仓库的时候,git 会使用第一对公钥/私钥,这个时候仍然一切正常。可当你需要用另一对公钥/私钥来 clone 第二个仓库的时候,git 默认仍然会使用第一对公钥/私钥,然后 GitHub 就会返回一个授权错误。


要解决这个问题,首先需要在 ~/.ssh/ 目录下新建一个 config 文件,为不同的项目分别指定公钥/私钥

~/.ssh/config

Host project-1
    HostName github.com
    User git
    IdentityFile /home/wyt/.ssh/id_rsa_project_1

Host project-2
    HostName github.com
    User git
    IdentityFile /home/wyt/.ssh/id_rsa_project_2

然后用 ssh-keygen 创建对应的公钥/私钥。

$ ls -l ~/.ssh
total 24
-rw-r--r-- 1 wyt wyt  244 2008-06-21 13:18 config
-rw------- 1 wyt wyt 1675 2008-06-21 13:04 id_rsa_project_1
-rw-r--r-- 1 wyt wyt  392 2008-06-21 13:04 id_rsa_project_1.pub
-rw------- 1 wyt wyt 1675 2008-05-20 11:24 id_rsa_project_2
-rw-r--r-- 1 wyt wyt  392 2008-05-20 11:24 id_rsa_project_2.pub
-rw-r--r-- 1 wyt wyt  802 2008-05-24 22:44 known_hosts

将公钥上传到 GitHub 上之后,就可以用下面的指令 clone 相应的软件仓库了

$ git clone git@project-1:username/project-1.git
$ git clone git@project-2:username/project-2.git


参考页面

2008年6月17日

悠言悠闲:Firefox 下载日

Download Day 2008

Firefox 3正式下载时间为北京时间六月十八日凌晨一点。下载日活动届时开始,请在北京时间六月十九日凌晨一点之前下载Firefox 3。

订阅我的博客

搜索我的博客

正在加载...

我的豆瓣广播

分享阅读

豆瓣秀

休斯敦火箭

我的文章归档

版权申明