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

1. 生成两个sshkey

生成第一个sshkey

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

生成第二个sshkey

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

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

d6c6f37fb4f1

image.png

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

d6c6f37fb4f1

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

d6c6f37fb4f1

image.png

添加公钥:

复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,将生成的 public key 添加到仓库中。( 针对于码云 )

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.

d6c6f37fb4f1

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值