当我们需要从 github 上克隆项目时,是需要在本地生成对应的 rsa 秘钥和公钥的,然后将公钥配置到对应的 github 账号里。
生成 rsa 秘钥和公钥的命令如下。如果是 windows 系统,可以在 git bash 里执行这个命令;如果是 mac os 系统,可以直接在终端里执行这个命令。
ssh-keygen -t rsa -C "你的邮箱地址"
1
输入这个命令后回车,会先看到提示 “是否要更改 rsa 文件的保存地址”,如果不输入直接回车,就会使用括号内的默认地址。
接着会提示 “是否需要设置密码”,不需要的话直接回车就行了。
这样就成功生成了对应的 rsa 秘钥和公钥文件,它们的默认文件名分别是 id_rsa 和 id_rsa.pub。将公钥文件 id_rsa.pub 中的内容复制后配置到 github 上,就可以愉快的克隆项目下来学习啦。
不过,在实际开发过程中,还会遇到这样一种情况,就是一台电脑上需要存储多个 git 账号的 rsa 秘钥,比如公司的 git 账号需要用公司邮箱去生成对应的 rsa 秘钥和公钥,而 github 需要用自己的邮箱去生成对应的 rsa 秘钥和公钥。
此时可以这么操作:
- 在生成新的 rsa 秘钥和公钥的时候,指定新的文件名称。可以按照下图这种方式指定文件名称:
也可以直接在生成的时候使用 -f
参数指定文件名称:
ssh-keygen -t rsa -C "你的邮箱地址" -f id_rsa_xxx
1
- 然后,在 .ssh 目录下的 config 文件中做以下配置,将每份秘钥文件跟对应的 git 网址进行对应。
# gitlab
Host git.xxx.cn # 公司的 gitlab 域名
HostName git.xxx.cn
PreferredAuthentications publickey
IdentityFile /c/users/ws/.ssh/id_rsa_gitlab
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile /c/users/ws/.ssh/id_rsa_gitee
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
这样就可以自由克隆不同 git 网站上的项目啦。