有的时候,我们需要在一台电脑配置多个SSH公钥,用于不同的项目中。(比如:公司用的公钥,和自己练习项目的公钥)
配置步骤:
创建SSH-KEY
//创建命令。这里创建两个。~/.ssh/id_rsa中的id_rsa为文件名。默认id_rsa
ssh-keygen -t rsa -C "您的邮箱" -f ~/.ssh/id_rsa
ssh-keygen -t rsa -C "您的邮箱" -f ~/.ssh/xct_rsa
这时,在.ssh目录下会多出id_rsa、id_rsa_pub、xct_rsa、xct_rsa_pub文件。其中,带有pub后缀的是公钥,反之为私钥。
ssh-add添加私钥
由于git会默认使用id_rsa,所以我们需要做些配置,告诉git根据不同的域名选择不同的私钥。
添加私钥
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/xct_rsa
这里可能会出现:Could not open a connection to your authentication agent的错误提示。(无法打开到身份验证代理的连接)。这时可以先输入ssh-agent bash命令,之后在重新输入添加私钥命令。如没有出现此错误,则跳过该步骤。
ssh-agent bash
查看是否添加成功
// 如添加成功,则会打印出相关信息
ssh-add -l
成功后,我们还需要创建config文件,进行一些配置。用来指定私钥对应的域名。
config文件
创建
touch ~/.ssh/config
这时,在ssh目录下将会在多出一个config文件。使用记事本打开。输入如下代码:
# Host 为域名别名
# Hostname 真实地址
# User 用户名
# IdentityFile rsa的地址
# PreferredAuthentications 认证方式(publickey--公钥的方式)
# 账号1-github
Host github.com
Hostname github.com
IdentityFile ~/.ssh/xct_rsa
PreferredAuthentications publickey
# 账号2-参考账号1即可
验证配置是否成功
ssh -T git@{Host},Host对应config中的Host域名
ssh -T git@github.com
注意:
1.配置多个本地ssh-key之前,需要先初始化下GIt环境
2.ssh-agent bash属于临时会话,也就是说,所有操作都在当前窗口执行。如开新窗口则无效。Git会默认取id_rsa作为密钥。