如何切换Git账号

前提

假设你有两个github账号,一个个人的,一个公司的,名称叫

  • personal
  • company

白天在公司干活,晚上在家干活,当然不同的账号管理不同的Repository了,要怎么切换呢?

一. 添加新密钥的私钥到SSH agent

ssh-add ~/.ssh/personal
ssh-add ~/.ssh/company

# 可以通过 ssh-add -l 来确私钥列表
$ ssh-add -l
# 可以通过 ssh-add -D 来清空私钥列表
$ ssh-add -D

二. 上传公钥

把两个公钥都放在网站服务器上(比如github)

三. 配置config文件

修改~/.ssh/config文件(没有则新建一个),一个用户对应一段配置:

Host personal.github.com
    HostName github.com
    User personal
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/personal

Host company.github.com
    HostName github.com
    User company
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/company


# Host 服务器别名  (随意取)
# HostName 服务器ip地址或机器名 (必须是服务器的地址)
# User连接服务器的用户名 ,作用不大 
# IdentityFile 密匙文件的具体路径  

其中的关键信息是Host, HostName和IdentityFile

四. 配置Repository

在Repository下配置对应的remote地址。比如personal对应的Repository为RP,则:

cd RP

# 查看原有的remote配置。一般是git@github.com:xx/xxx.git格式,注意这里的地址是github.com
git remote -vv

#更新原来的origin配置,把github.com替换为前面的Host,即personal.github.com
git remote set-url origin git@personal.github.com:xx/xxx.git

五. 测试

# 测试。第一个git表示是git方式,github.com指测试github.com
ssh -T git@personal.github.com  

ssh -T git@company.github.com 

# 打印详细信息
ssh -vT git@github.com

## 测试时空可以指定密钥文件
ssh -vT git@github.com -i ~/.ssh/personal

其他

有时候重启,或者长时间不操作,会出现连接拒绝,需要重新把密钥添加到ssh中:

ssh-add ~/.ssh/xixisese

ref

  • https://www.cloudsavvyit.com/14747/how-to-switch-a-github-repository-to-ssh-authentication/


《 “如何切换Git账号” 》 有 3 条评论

  1. dapoxetine for premature Massage your scalp with essential oils, several of which are natural remedies for hair regrowth

  2. buy priligy in the us Day 1 300mg 40mg Nolva Day 2 11 100mg 20mg Nolva Day 12 22 50mg 20mg Nolva

回复 agodelo 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

About Me

一位程序员,会弹吉他,喜欢读诗。
有一颗感恩的心,一位美丽的妻子,两个可爱的女儿
mail: geraldlee0825@gmail.com
github: https://github.com/lisuxiaoqi
medium: https://medium.com/@geraldlee0825