大多数 Git 服务器都会选择使用 SSH-Key 来进行授权。如果有此文件夹就不需要创建了。

一、用户根目录下创建 .ssh 文件夹

  1. mkdir .ssh

二、在 .ssh 目录下生成各平台 ssh-key

1、创建方式
  1. (1) ssh-keygen -t rsa
  2. (2) ssh-keygen -t rsa -C 'github.com'
  3. (3) ssh-keygen -t rsa -C 'github.com' -f id_rsa_github

三种方式均可:
方式(2): -C 后面的 ‘github.com’ 是生成 ssh-key 的注释
方式(3): -f 后面是生成 ssh-key 的名称
结果如图所示:
image.png
方式(1)或方式(2)的截图

  • 红色框1处表示此次存储的 ssh-key 名称,不填默认为 id_rsa
  • 红色框2和红色框3处创建和确定 push 文件时需要输入的密码,可以为空

注:方式(3)不会出现红色框1处,因为 -f id_rsa_github 已经设置过 ssh-key 名称

2、创建各平台对应 ssh-key

github
  1. ssh-keygen -t rsa -C 'github.com' -f id_rsa_github

gitlab
  1. ssh-keygen -t rsa -C 'gitlab.com' -f id_rsa_gitlab

gitee
  1. ssh-keygen -t rsa -C 'gitee.com' -f id_rsa_gitee

三、添加 ssh-key 到各平台

1、查看获取 ssh-key

方式1
  1. cat id_rsa_github.pub

image.png
红色框1处是 ssh key 内容

方式2
  1. pbcopy < id_rsa_github.pub

命令复制 id_rsa_github.pub 内容,直接粘贴即可

2、添加到各平台

image.png
添加到 github 平台
image.png
添加到 githlab 平台
image.png
添加到 gitee 平台

四、在 .ssh 目录下配置 config

如果没有这个文件执行命令生成

  1. touch config
  1. # github
  2. Host github.com
  3. HostName github.com
  4. PreferredAuthentications publickey
  5. IdentityFile ~/.ssh/id_rsa_github
  6. # gitlab
  7. Host gitlab.com
  8. HostName gitlab.com
  9. PreferredAuthentications publickey
  10. IdentityFile ~/.ssh/id_rsa_gitlab
  11. # gitee
  12. Host gitee.com
  13. HostName gitee.com
  14. PreferredAuthentications publickey
  15. IdentityFile ~/.ssh/id_rsa_gitee

config 内容,其中 Host 和 HostName 填写 git 服务器的域名,IdentityFile 指定私钥的路径。

五、测试 ssh-key

1、测试 github
  1. ssh -T git@github.com

结果如下图:
image.png
红色框1处提示说明已配置 github ssh-key 成功

2、测试 gitlab
  1. ssh -T git@gitlab.com

结果如下图:
image.png
红色框1处提示说明已配置 gitlab ssh-key 成功

3、测试 gitee
  1. ssh -T git@gitee.com

结果如下图:
image.png
红色框1处提示说明已配置 gitee ssh-key 成功

六、出现权限不足的报错

出现权限不足的时候,执行以下命令添加对应的密钥

  1. ssh-add id_rsa_gitlab

然后就没有什么大问题了