目录
  1. 1. 配置GitHub SSH Key
    1. 1.1. ssh key生成
    2. 1.2. 查看生成的ssh key
    3. 1.3. 查看公钥
    4. 1.4. GitHub SSH Key
    5. 1.5. 验证账户链接是否成功
    6. 1.6. ssh key 配置文件
    7. 1.7. 再次验证
  2. 2. 配置Gitee SSH Key
    1. 2.1. ssh key生成
    2. 2.2. 查看生成的ssh key
    3. 2.3. 查看公钥
    4. 2.4. Gitee SSH Key
    5. 2.5. 验证账户链接是否成功
在一台电脑上管理多个SSH key

最近由于微博开始防盗链了,导致我日常使用的图床无法正常使用,而且不想去使用七牛云、阿里云这种收费的OSS,所以迫切需要一个免费而且私有的图床,说是上传GitHub上也可以当图床,但是国内访问GitHub的速度是太“快”了,然后想到国内gitee也可以呀,访问速度杠杠的。

因为现在GitHub、gitee这种代码托管平台都需要SSH Key,以前都是一台电脑使用一个SSH Key 的。现在既需要访问GitHub也需要访问Gitee,所以需要在电脑上配置两个SSH Key。

配置GitHub SSH Key

ssh key生成

zsh
1
ssh-keygen -t rsa -C "example@mail.com"

此时提示保存key的名称和路径,为了区分两个ssh,所以需要自定义key的名称

zsh
1
Enter file in which to save the key (/Users/izzio/.ssh/id_rsa):

输入自定义路径

不要只输入文件名,要连路径一起输入,不然会直接在根目录生成key

zsh
1
/Users/izzio/.ssh/id_rsa_github

然后会提示输入密码,可以按Enter跳过直接生成

查看生成的ssh key

zsh
1
cd .ssh && ls

会发现在.ssh下生成了两个新文件:id_rsa_githubid_rsa_github.pub,前者为私钥,后者为公钥,我们需要将公钥上传到GitHub账户的公钥管理中。

查看公钥

zsh
1
cat ~/.ssh/id_rsa_github.pub

将公钥的内容复制下来。

GitHub SSH Key

首先进入GitHub的Settings页面

选择SSH and GPG keys

选择New SSH key

Title随便命名,自己知道是哪个就行,然后将前面所复制的公钥内容粘贴到Key中,点击Add SSH key即可。

验证账户链接是否成功

zsh
1
ssh -T git@github.com

此时会有个提示,

zsh
1
The authenticity of host 'github.com (13.229.188.59)' can't be established.
2
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
3
Are you sure you want to continue connecting (yes/no)? yes

这个提示的意思是无法与名为 github.com 的站点建立真实可靠的链接,RSA秘钥的指纹识别为256位的SHA256: ….是否需要继续链接?

说白了就是要在本地保存 github.com 的公钥,与 GitHub 信息交互的时候要带上这个公钥,以便于 Github 解密。有点类似于 GitHub 给你一把锁(公钥),你用这个锁锁住信息,然后丢给 GithubGitHub 就可以用它自己的钥匙(私钥)来解开这把锁来查看信息了。

站点的公钥信息,可以在 ~/.ssh 目录下的 known_host 里查看。有时候需要删除这个 known_host 里的站点公钥,重新建立安全连接。

然而,此时的验证确是失败的,因为这个验证会使用默认的名为 id_rsaid_rsa.pub 的文件进行信息交互,可是我们在创建的时候改名字了,这个时候就需要配置文件了。

ssh key 配置文件

我们首先要创建ssh的配置文件,然后在配置文件中添加连接GitHub的信息。

zsh
1
touch .ssh/config
2
nano .ssh/config

config中添加连接GitHub的信息

code
1
Host github
2
HostName github.com
3
User git
4
IdentityFile ~/.ssh/id_rsa_github

Host为站点,HostName为站点名称,User为连接用户,IdentityFile为私钥路径。

如果站点为ip地址,则用ip地址代替域名

再次验证

zsh
1
ssh -T git@github.com

提示以下信息即为成功

zsh
1
Hi Izzio! You've successfully authenticated, but GITEE.COM does not provide shell access.

至此GitHub SSH key配置成功。

配置Gitee SSH Key

配置Gitee的方法跟GitHub配置相似。

ssh key生成

zsh
1
ssh-keygen -t rsa -C "example@mail.com"

此时提示保存key的名称和路径,为了区分两个ssh,所以需要自定义key的名称

zsh
1
Enter file in which to save the key (/Users/izzio/.ssh/id_rsa):

输入自定义路径

不要只输入文件名,要连路径一起输入,不然会直接在根目录生成key

zsh
1
/Users/izzio/.ssh/id_rsa_gitee

然后会提示输入密码,可以按Enter跳过直接生成

查看生成的ssh key

zsh
1
cd .ssh && ls

会发现在.ssh下生成了两个新文件:id_rsa_giteeid_rsa_gitee.pub,前者为私钥,后者为公钥,我们需要将公钥上传到GitHub账户的公钥管理中。

查看公钥

zsh
1
cat ~/.ssh/id_rsa_gitee.pub

将公钥的内容复制下来。

Gitee SSH Key

首先进入Gitee的Settings页面

选择SSH公钥,然后添加公钥,

Title随便命名,自己知道是哪个就行,然后将前面所复制的公钥内容粘贴到Key中,点击确定输入账户密码即可。

config中添加连接Gitee的信息

code
1
Host github
2
HostName github.com
3
User git
4
IdentityFile ~/.ssh/id_rsa_github
5
6
Host gitee.com
7
HostName gitee.com
8
User git
9
IdentityFile ~/.ssh/id_rsa_gitee

验证账户链接是否成功

zsh
1
ssh -T git@gitee.com

连接成功

zsh
1
The authenticity of host 'gitee.com (212.64.62.174)' can't be established.
2
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
3
Are you sure you want to continue connecting (yes/no)? yes
4
Warning: Permanently added 'gitee.com,212.64.62.174' (ECDSA) to the list of known hosts.
5
Hi Izzio! You've successfully authenticated, but GITEE.COM does not provide shell access.

这时,在一台电脑上就可以同时使用GitHub和Gitee,同理我们还可以继续添加其他账号的ssh key,这样一台电脑可以使用多个ssh key免密码的git操作了。

参考:

【简书】铃鹿山大魔王-同一台电脑管理多个SSH key

文章作者: Izzio
文章链接: https://izzio.netlify.com/blog/git/13480.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Seventy
ENG