生成多个SSH公钥及对应Git配置使用
一、应用场景
如果有多个github账号,不同账号使用不同SSH Key,或者使用多个托管网站(gitee、github、gitlab…)等,不同托管网站使用不同SSH Key,那么就需要生成不同的公钥,然后分别配置,具体操作步骤如下。
二、查看已有SSH Key
输入: ls ~/.ssh/
能看到你已有的SSH Key
输出:config gitee_id_rsa gitee_id_rsa.pub id_rsa id_rsa.pub known_hosts
例如上面意思是已有gitee_id_rsa 和 id_rsa 2个key,如果没有则按步骤三生成,如果已有key可进入步骤四。
注意:已有key即使配置成功也可能使用不了,那么还是生成新的key吧
三、生成SSH Key
输入: ssh-keygen -t rsa -C 'xxxx@xx.com' -f ~/.ssh/gitee_id_rsa
xxxx@xx.com 为你的邮箱。 -f ~/.ssh/gitee_id_rsa
是指定key的命名为gitee_id_rsa,不指定的话,默认为id_rsa
然后按提示会要求输入密码,密码可以为空,直接回车即可,3次回车后会生成key
注意,其中画红线的部分记录着key的存储路径,记下来,后面用到:
Your identification has been saved in /c/Users/Administrator/.ssh/gitee_id_rsa.
四、查看已生成的SSH Key代码
方法一
输入:cat ~/.ssh/gitee_id_rsa.pub
输出:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDaEUbtEfcYiQ........... xxxx@xx.com
输出的代码就是公钥了
方法二
打开目录 C:\Users\Administrator\.ssh
,目录可能不同,具体请看步骤二
找到 gitee_id_rsa.pub 文件,用记事本打开查看即可。
五、Git配置多个SSH Key
同样,打开目录 C:\Users\Administrator\.ssh
,在该目录下,新建一个config
文件,注意:该文件名称为config,没有后缀 用记事本打开,输入:
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
# github_A
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_A_id_rsa
# github_B
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_B_id_rsa
上文意思是,gitee.com 可使用gitee_id_rsa公钥,github可使用github_A_id_rsa 和 github_B_id_rsa 公钥。
最终目录结构如下:
六、代码托管网站配置SSH Key
gitee
个人--> 设置 --> SSH 公钥
,填入步骤四生成的公钥代码即可。
github
Personal--> Settings --> SSH and GPG keys
,填入步骤四生成的公钥代码即可。
七、测试连通
输入:ssh -T git@gitee.com
输出:Hi xxxx You've successfully authenticated, but GITEE.COM does not provide shell access.
表示SSH Key和托管网站配置成功,可以进行push操作,而且不用输入密码了。
如果本文帮到您,点个赞呗 ^_^