如果❤️我的文章有帮助,欢迎点赞、关注。这是对我继续技术创作最大的鼓励。
起因
公司一个 gitlab 代码仓库;个人一个 github 代码仓库;
然后最近 github 本来就慢,被河蟹
之后丢包更严重了。所以为了不影响使用,又加了个国内码云 gitee
;
正巧重新配了下 仓库秘钥,做个记录方便之后换机器、重置系统再用。
生成秘钥
为了方便说明,我假设需要重新配置全部秘钥。如果机器上已经配置好其它秘钥,直接生成新的秘钥(注意不要覆盖
已经生成好
的秘钥)
使用终端 ssh命令 生成 rsa秘钥
ssh-keygen -t rsa -C “邮箱地址1” -f ~/.ssh/id_rsa_github
-f 为秘钥存放地址。默认为当前路径
。一直回车下去,过程如下:
此时~/.ssh
目录下会生成2个文件,分别对应 公钥id_rsa_github.pub
和 私钥id_rsa_github
。
将公钥告诉git服务器
打开公钥文件,复制里面内容。
vim id_rsa_github.pub
登陆 git服务器
(这里以github举例)。 github账户 > setting选项 > SSH and GPG keys,把 公钥字符串
粘贴里面的key输入框中,保存退出即可。
通过命令 ssh -T git@github.com
测试,
如果出现上图提示,说明秘钥添加成功。
配置多个秘钥
我们重复步骤 生成秘钥
、将公钥告诉git服务器
生成并配置新的秘钥后。
在 .ssh
目录下面新建 config文件
,文件内容如下:
配置以下内容:
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
user coderdao
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee
user coderdao
HostName 指定秘钥使用域名,就能区分不同域名之间使用秘钥不同
保存后,测试 ssh -T git@github.com
、ssh -T git@gitee.com
上图所示,即配置多个git秘钥配置成功
其他问题
如果配置 config
文件后,未能生效。本地 git
软件的配置存在缓存,可使用以下命令判断秘钥是否生效:
$ cd ~/.ssh
$ eval $(ssh-agent)
Agent pid 3593
$ exec ssh-agent bash
$ ssh-add ~/.ssh/id_rsa_github
Identity added: /c/Users/Administrator/.ssh/id_rsa_github
$ ssh -T git@github.com
Hi coderdao! You've successfully authenticated, but GitHub does not provide shell access.