Ubuntu系统git多账号配置

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

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

# [email protected]是邮箱号
ssh-keygen -t rsa -C "[email protected]"  

# 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 [email protected]

若返回

Welcome to Git@OSC, yourname!

则证明添加成功。

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

举个例子,我又在git.oschina.net上面新建了一个账号[email protected],然后还在github.com上面新建了一个[email protected]账号

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 [email protected]
ssh -T [email protected]
ssh -T [email protected]

注意:ssh -T [email protected] 如果提示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 "[email protected]" 

或者

git config --global user.name "yyyyy" 
git config --global user.email "[email protected]" 

或者

git config --global user.name "zzzzz" 
git config --global user.email "[email protected]" 

访问远程库的不同
通过[email protected]访问远程项目

git clone [email protected]:xxxxx/demo.git

通过[email protected]访问远程项目

git clone [email protected]:yyyyy/demo.git

通过[email protected]访问远程项目

git clone [email protected]: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 [email protected]
ssh -T [email protected] 
ssh -T [email protected]

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

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

参考链接

你可能感兴趣的:(Ubuntu系统git多账号配置)