如果我们电脑上已经存在了一个ssh key,那么我们需要在我们电脑上生成第二个你想在本电脑上使用的id_rsa,使用命令:ssh-keygen -t rsa -C "你的github账号"
。
红色标注部分会提示你把新生成的id_rsa存放到哪里,此处默认会存放在c盘的用户名下的.ssh文件夹下(即你第一个github用户ssh key存放的目录),因此我们需要输入路径/c/Users/DodoMonster/.ssh(注意此路径是你的系统盘下用户目录安放ssh密钥的目录,请使用自己电脑上相对应的目录),最后我以“id_rsa_gman”重新命名了ssh key防止默认与已有的ssh key重复。
在输入了路径后,会提示你输入提交项目时输入的验证密码,不输则表示不用密码,这是为了防止别人随便在你的项目上push东西,所以最好还是输入以下你的密码。回车,再重复输入确认回车即可(一路回车也可以,此时没有密码)。
默认SSH只会读取id_rsa,所以为了让SSH识别新的私钥,需要将其添加到SSH agent
使用命令:ssh-add ~/.ssh/id_rsa_gman
如果报错:Could not open a connection to your authentication agent.无法连接到ssh agent;可执行ssh-agent
bash
命令后再执行ssh-add命令
查看.ssh文件中是否存在config文件
如果已存在则直接编辑config文件,命令:vim config
#这是linux的命令,进入了vim界面后按a或i或A或I
进入编辑模式,编辑完成后按esc键输入:wq
保存文件退出
如果不存在则需要创建config文件,命令:touch config
,再对config文件进行编辑
对config文件进行配置填写:
#Default github user([email protected])-这其实是注释
Host github #把默认的常用的github Host设为github.com较好
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_me
其中Host 后的名字可以随意方便自己记忆,但HostName必须为github.com。
# ************************************************
#second user([email protected])
Host monster
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
ps:HostName 是域名
使用命令:
ssh -T [email protected]
ssh -T git@github
出现如图的欢迎语则为配置成功。
注意:配置完成后,在连接Host不是github.com的github仓库时,远程库的地址要对应地做一些修改,比如现在添加monster帐号下的一个仓库orderTicket,则需要使用如下命令这样添加:
git remote add test git@github:monster/orderTicket.git
而并非原来的[email protected]:monster/orderTicket.git(这样每次连接都会使用id_rsa与服务器进行连接)。
配置至此,大功告成!
# 可以采用如下方式 在第一个回车后输入名称
ssh-keygen -t rsa -C "[email protected]
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/QuQu/.ssh/id_rsa): id_rsa_gitlab
# github配置
Host github.com(可更改)// 主机名字,不能重名
HostName github.com// 主机所在域名或IP
User git// 用户名称
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github// 私钥路径
# github配置(第二个与第一个不是一个仓库但是同为github)
Host github2.com(可更改)// 主机名字,不能重名
HostName github.com// 主机所在域名或IP
User git// 用户名称
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github2// 私钥路径
# gitlab配置
Host gitlib.com(可更改)
HostName gitlab.xxx.com(gitlab仓库域名)
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
# gitee配置
Host gitee.com(可更改)
HostName gitee.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
# 如果在.ssh目录下可省略文件路径 :ssh-add id_rsa_github
ssh-add -D
ssh-add ~/.ssh/id_rsa_github
ssh-add ~/.ssh/id_rsa_gitlab
ssh -T [email protected]
ssh -T [email protected]
ssh -T [email protected]
ssh -T [email protected]
# xxx! You’ve successfully authenticated, but GitHub does not provide bash access.
# 出现上述提示,连接成功
# 取消全局 用户名/邮箱 配置
$ git config --global --unset user.name
$ git config --global --unset user.email
# 进入项目文件夹,单独设置每个repo 用户名/邮箱
$ git config user.email "[email protected]"
$ git config user.name "xxxx"
$ git remote rm origin
# 远程仓库地址,注意Host名称
$ git remote add origin [email protected]:githubUserName/repName.git
$ git remote -v # 查看远程
# ssh -vT [email protected]可以打印log 通过此方法可以debug如果连接不成功
git clone [email protected]:username/repo.git
注意此时要把原来的github.com配置成你定义的github
修改仓库的配置文件:.git/config 为
[remote "origin"]
url = [email protected]:gitlabUserName/repName.git