代码托管

git在本地配置多个ssh key账户(使用两个git账号)

2019-02-28  本文已影响0人  带刀打天下
1. 生成两个sshkey

生成第一个sshkey

$ ssh-keygen -t rsa -C "你的邮箱1@xxx.com"

生成第二个sshkey

$ ssh-keygen -t rsa -C "你的邮箱2@xxx.com"

注意:不要一路回车,要对文件进行重命名。

image.png

在这里我创建的第一个sshkey是id_rsa,第二个是 id_rsa_two

image.png
2. 配置 config

我们需要在目录: ~/.ssh/ (linux),C:\Users\admin\.ssh\ (windows),创建config文件,并且配置ssh key的路由策略。
创建config文件:

$ touch config

linux 下 config 配置:

# gitee server one
Host gitee.com
    HostName gitee.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa
# gitee server two
Host gitee_two.com
    HostName gitee.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_two

windows 下 config 配置:

#gitee server one
Host gitee.com
    Hostname gitee.com
    User git
    PreferredAuthentications publickey
    IdentityFile C:\\Users\\\admin\\.ssh\\id_rsa
#gitee server two
Host gitee_two.com
    Hostname gitee.com
    User git
    PreferredAuthentications publickey
    IdentityFile C:\\Users\\\admin\\.ssh\\id_rsa_two

Host : 相当于一个别名,远程仓库地址的域名别名它涵盖了下面一个段的配置,我们可以通过他来替代将要连接的服务器地址。这里可以使用任意字段或通配符。访问ssh的时候如果服务器地址能匹配上这里Host指定的值,则Host下面指定的HostName将被作为最终的服务器地址使用,并且将使用该Host字段下面配置的所有自定义配置来覆盖默认的/etc/ssh/ssh_config配置信息。
HostName :真正连接的服务器地址
User:自定义的用户名
PreferredAuthentications 指定优先使用哪种方式验证,支持密码和秘钥验证方式
IdentityFile:指定本次连接使用的密钥文件

3. 添加sshkey

通过查看 ~/.ssh/id_rsa.pub 文件内容,获取到你的 public key

cat ~/.ssh/id_rsa.pub
image.png
4. 验证是否成功

连接测试

[root@hostname .ssh]# ssh -T git@gitee.com
Hello 用户名 You've connected to Coding.net by SSH successfully!
[root@hostname .ssh]# ssh -T git@gitee_two.com
Hi 用户名! You've successfully authenticated, but GitHub does not provide shell access.
image.png
5. 拉取项目设置

通过上述设置,就可以通过不同的Host来针对不同的git仓库和git项目使用不同的ssh key。
注意:通常情况下我们从git仓库拉取的项目ssh访问地址,类似这种git@git仓库地址:用户名/项目名.git。一定要把这里的git仓库地址替换为ssh config里面设定的Host。

[root@hostname .ssh]# git clone git@gitee.com:用户名/项目名.git
替换为如下
[root@hostname .ssh]# git clone git@gitee_two.com:用户名/项目名.git
6. 关联本地已有的项目

通过上述设置,就可以通过不同的Host来针对不同的git仓库和git项目使用不同的ssh key。
注意:通常情况下我们将本地仓库与git远程仓库进行关联时的地址是ssh访问地址时,类似这种git@git仓库地址:用户名/项目名.git。一定要把这里的git仓库地址替换为ssh config里面设定的Host。

git remote add origin  git@gitee.com:用户名/项目名.git 
git remote add origin  git@gitee_two.com:用户名/项目名.git 
上一篇下一篇

猜你喜欢

热点阅读