Ubuntu系统git多账号配置

1. 如何生成ssh公钥(摘录自git.oschina.net)

你可以按如下命令来生成 sshkey:

# xxxxx@xxxxx.com是邮箱号
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"  

# Generating public/private rsa key pair...
# 三次回车即可生成 ssh key

查看你的 public key,并把他添加到码云(Gitee.com) SSH key添加地址

cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

添加后,在终端(Terminal)中输入

ssh -T git@git.oschina.net

若返回

Welcome to Git@OSC, yourname!

则证明添加成功。

2. 配置多账号以及多地址

举个例子,我又在git.oschina.net上面新建了一个账号yyyyy@yyyyy.com,然后还在github.com上面新建了一个zzzzz@zzzzz.com账号

2.1 按照第一步生成private和public key

同样把public key上传到git.oschina.net或者github.com的对应位置,如下

~/.ssh/id_rsa_yyyyy
~/.ssh/id_rsa_yyyyy.pub

~/.ssh/id_rsa_zzzzz
~/.ssh/id_rsa_zzzzz.pub
2.2 配置~/.ssh/config文件
#xxxxx
Host git.oschina.net
    HostName git.oschina.net
    User xxxxx
    IdentityFile /home/user/.ssh/id_rsa

#yyyyy
Host git.oschina.net-yyyyy #这里不同
    HostName git.oschina.net #这里一样
    User yyyyy
    IdentityFile /home/user/.ssh/id_rsa_yyyyy #这里不同
    
#zzzzz
Host github.com #这里不同
    HostName github.com #这里一样
    User zzz
    IdentityFile /home/user/.ssh/id_rsa_zzzzz #这里不同    

验证配置是否生效

ssh -T git@git.oschina.net
ssh -T git@git.oschina.net-yyyyy
ssh -T git@github.com

注意:ssh -T git@github.com 如果提示Hi zzzzz! You've successfully authenticated, but GitHub does not provide shell access.说明已经成功

3. 多账号之间切换

git config --global user.name "xxxxx" 
git config --global user.email "xxxxx@xxxxx.com" 

或者

git config --global user.name "yyyyy" 
git config --global user.email "yyyyy@yyyyy.com" 

或者

git config --global user.name "zzzzz" 
git config --global user.email "zzzzz@zzzzz.com" 

访问远程库的不同
通过xxxxx@xxxxx.com访问远程项目

git clone git@git.oschina.net:xxxxx/demo.git

通过yyyyy@yyyyy.com访问远程项目

git clone git@git.oschina.net-yyyyy:yyyyy/demo.git

通过zzzzz@zzzzz.com访问远程项目

git clone git@github.com:zzzzz/demo.git

4. 避免每次为SSH-KEY输入密码

4.1 以下的生命周期为某个Console

#会重新开启一个ssh-agent进程
eval `ssh-agent -s`
ssh-add /home/user/.ssh/id_rsa
ssh-add /home/user/.ssh/id_rsa_yyyyy
ssh-add /home/user/.ssh/id_rsa_zzzzz

以后以下操作就不用输入密码了

ssh -T git@git.oschina.net
ssh -T git@git.oschina.net-yyyyy 
ssh -T git@github.com

4.2 使用keychain,重启后失效,ssh-agent进程重启了

sudo apt-get install keychain

#添加以下到${HOME}/.bashrc 或者 /etc/bash.bashrc
keychain /home/user/.ssh/id_rsa  /home/user/.ssh/id_rsa_yyyyy /home/user/.ssh/id_rsa_zzzzz
. ~/.keychain/`uname -n`-sh

注意把#开头的注释都删除哈!

参考链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,986评论 19 139
  • 问题描述 公司要求项目的git账号必须使用公司邮箱,而我平时写的一些小demo肯定是用的自己的邮箱绑定的账号,这样...
    Tony_Yang阅读 1,625评论 0 2
  • 上了年纪… … 不能一天一发了.
    正义感十足的阿摩阅读 253评论 0 0
  • 有时不是没事做,而是我把要做的事都往后推了,结果就是,闲是真闲,忙是真忙
    大大小孩阅读 177评论 0 0
  • 喜欢多肉植物的花友们,大叔每天都会精选一款多肉植物,让大家了解,这样就会不断学习到多肉的知识,每天认识一款,一年也...
    多肉花客阅读 819评论 0 4