最近由于微博开始防盗链了,导致我日常使用的图床无法正常使用,而且不想去使用七牛云、阿里云这种收费的OSS,所以迫切需要一个免费而且私有的图床,说是上传GitHub上也可以当图床,但是国内访问GitHub的速度是太“快”了,然后想到国内gitee也可以呀,访问速度杠杠的。
因为现在GitHub、gitee这种代码托管平台都需要SSH Key,以前都是一台电脑使用一个SSH Key 的。现在既需要访问GitHub也需要访问Gitee,所以需要在电脑上配置两个SSH Key。
配置GitHub SSH Key
ssh key生成
1 | ssh-keygen -t rsa -C "example@mail.com" |
此时提示保存key的名称和路径,为了区分两个ssh,所以需要自定义key的名称
1 | Enter file in which to save the key (/Users/izzio/.ssh/id_rsa): |
输入自定义路径
不要只输入文件名,要连路径一起输入,不然会直接在根目录生成key
1 | /Users/izzio/.ssh/id_rsa_github |
然后会提示输入密码,可以按Enter
跳过直接生成
查看生成的ssh key
1 | cd .ssh && ls |
会发现在.ssh
下生成了两个新文件:id_rsa_github
、id_rsa_github.pub
,前者为私钥,后者为公钥,我们需要将公钥上传到GitHub账户的公钥管理中。
查看公钥
1 | cat ~/.ssh/id_rsa_github.pub |
将公钥的内容复制下来。
GitHub SSH Key
首先进入GitHub的Settings页面
选择SSH and GPG keys
选择New SSH key
Title
随便命名,自己知道是哪个就行,然后将前面所复制的公钥内容粘贴到Key
中,点击Add SSH key即可。
验证账户链接是否成功
1 | ssh -T git@github.com |
此时会有个提示,
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
给你一把锁(公钥),你用这个锁锁住信息,然后丢给 Github
。 GitHub
就可以用它自己的钥匙(私钥)来解开这把锁来查看信息了。
站点的公钥信息,可以在 ~/.ssh
目录下的 known_host
里查看。有时候需要删除这个 known_host
里的站点公钥,重新建立安全连接。
然而,此时的验证确是失败的,因为这个验证会使用默认的名为 id_rsa
和 id_rsa.pub
的文件进行信息交互,可是我们在创建的时候改名字了,这个时候就需要配置文件了。
ssh key 配置文件
我们首先要创建ssh的配置文件,然后在配置文件中添加连接GitHub的信息。
1 | touch .ssh/config |
2 | nano .ssh/config |
在config
中添加连接GitHub的信息
1 | Host github |
2 | HostName github.com |
3 | User git |
4 | IdentityFile ~/.ssh/id_rsa_github |
Host
为站点,HostName
为站点名称,User
为连接用户,IdentityFile
为私钥路径。
如果站点为ip地址,则用ip地址代替域名
再次验证
1 | ssh -T git@github.com |
提示以下信息即为成功
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生成
1 | ssh-keygen -t rsa -C "example@mail.com" |
此时提示保存key的名称和路径,为了区分两个ssh,所以需要自定义key的名称
1 | Enter file in which to save the key (/Users/izzio/.ssh/id_rsa): |
输入自定义路径
不要只输入文件名,要连路径一起输入,不然会直接在根目录生成key
1 | /Users/izzio/.ssh/id_rsa_gitee |
然后会提示输入密码,可以按Enter
跳过直接生成
查看生成的ssh key
1 | cd .ssh && ls |
会发现在.ssh
下生成了两个新文件:id_rsa_gitee
、id_rsa_gitee.pub
,前者为私钥,后者为公钥,我们需要将公钥上传到GitHub账户的公钥管理中。
查看公钥
1 | cat ~/.ssh/id_rsa_gitee.pub |
将公钥的内容复制下来。
Gitee SSH Key
首先进入Gitee的Settings页面
选择SSH公钥,然后添加公钥,
Title
随便命名,自己知道是哪个就行,然后将前面所复制的公钥内容粘贴到Key
中,点击确定输入账户密码即可。
在config
中添加连接Gitee的信息
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 |
验证账户链接是否成功
1 | ssh -T git@gitee.com |
连接成功
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