同一电脑管理多个SSH KEY
一般情况下电脑上创建 ssh key
默认都是 id_rsa
和 id_rsa.pub
——一对公私钥,用这一个 ssh key
登录多个代码协同网站
ssh ( Secure Shell: 安全外壳协议) 的缩写,建立在应用层和传输层基础上的安全协议,可用于免密登录
之前创建的 ssh key
,既用在自己的 GitHub
、Gitee
等网站,也用在公司搭的 Gitlab
上,不太合适,因此考虑创建个人的 key
和公司的 key
两套共用方案。
1、创建 ssh key
先切换到C盘的 ~/.ssh/
目录下,或者用 ls -a ~/.ssh
查看是否有已生成的密钥(我之前有配置默认的 id_rsa
)
现在先删除已有的密钥,重新生成两套密钥
ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
# -t 指明类型。默认是rsa,这里用更短的ed25519,默认生成的密钥名称就是:id_类型
# -C 指定注释。大部分教程都是用邮箱,主要是为了便于标识,其实用啥都行
在命令行中执行上述命令,按照提示设置密码,修改密钥名称后,回车生成密钥
2、添加 ssh key 到仓库
-
将
cestc-61
密钥添加到个人用的Github
和Gitee
,将cestc-work
密钥添加到公司用的Gitlab
,然后ssh -T git@github.com
或者ssh -T gir@公司gitlab地址
测试连接 -
使用时由于有不同的密钥,因此比如拉取
Github
上的仓库到本地时,需要手动指定用哪个密钥,或者每次会话开一个ssh-agent
缓存密钥信息,这样过于麻烦,可以在config
文件中配置 -
在
.ssh
文件夹下创建config
(不需要后缀),然后编辑# github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/cestc-61 # Host 自定义的服务别名 # HostName 远程git地址 # User 登录用户 可不填 # PreferredAuthentications 设置优先认证方式 # IdentityFile 私钥路径 # 有多个代码平台就添加多个
拉取代码时用的是别名
Host
,因此最好HostName
和Host
一致 -
之后就可以正常拉取代码操作了。