一台电脑关联两个oschina账户

公司项目和本人各有一个oschina的账户,因此需要配置对其分别进行关联,以期达到同时在git上使用并互不干扰的效果。

一、生成两个SSH-Key

分别使用如下命令生成两个SSH-Key:

ssh-keygen -t rsa -f ~/.ssh/id_rsa -C "oneemail@xxx.com"
ssh-keygen -t rsa -f ~/.ssh/id_rsa_x -C "twoemail@xxx.com"

如下图:

生成的文件保存在 C:\Users\18708\.ssh 中:

二、 把两个公钥分别添加到对应的oschina账号中

 三、在.ssh目录创建config文本文件并完成相关配置

每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostNameIdentityFile两个属性即可

HostName           这个是真实的域名地址
IdentityFile          这里是id_rsa的地址
PreferredAuthentications    配置登录时用什么权限认证--可设为publickey,password publickey,keyboard-interactive等
User             配置使用用户名

Host one.gitee.com             
    HostName git.oschina.net
    IdentityFile C:\\Users\\18708\\.ssh\\id_rsa
    PreferredAuthentications publickey
    User onename

Host two.gitee.com
    HostName git.oschina.net
    IdentityFile C:\\Users\\18708\\.ssh\\id_rsa_x
    PreferredAuthentications publickey
    User twoname

或者配置文件写为以下内容(建议第一种):

 

Host one.git.oschina.net            
    HostName git.oschina.net
    IdentityFile C:\\Users\\18708\\.ssh\\id_rsa
    PreferredAuthentications publickey
    User onename

Host two.git.oschina.net
    HostName git.oschina.net
    IdentityFile C:\\Users\\18708\\.ssh\\id_rsa_x
    PreferredAuthentications publickey
    User twoname

四、打开Git Bash执行测试命令测试

该步会自动在.ssh目录生成known_hosts文件把私钥配置进去。命令如下:

ssh -T git@one.gitee.com  
ssh -T git@two.gitee.com 
或者
ssh -T git@one.git.oschina.net
ssh -T git@two.git.oschina.net

五、分别clone两个账号的项目进行验证

git clone git@one.gitee.com:XXX/xxx.git
git clone git@two.gitee.com:XXX/xxx.git
或者
git clone git@one.git.oschina.net:XXX/xxx.git
git clone git@two.git.oschina.net:XXX/xxx.git

 

写在最后的原理分析:
1. ssh 客户端是通过类似 git@git.oschina.net:githubUserName/repName.git ** 的地址来识别使用本地的哪个私钥的,地址中的 User 是@前面的git, Host 是@后面的git.oschina.net;
2. 如果所有账号的 User 和 Host 都为 git 和 git.oschina.net,那么就只能使用一个私钥。所以要对User 和 Host 进行配置,让每个账号使用自己的 Host,每个 Host 的域名做 CNAME 解析到 git.oschina.net,如上面配置中的Host   two.git.oschina.net
3.配置了别名之后,新的地址就是git@two.git.oschina.net:githubUserName/repName.git**(在添加远程仓库时使用)。
这样 ssh 在连接时就可以区别不同的账号了。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值