Ubuntu系统git多账号配置

2017-08-18  本文已影响0人  lostsearover

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

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

参考链接

上一篇下一篇

猜你喜欢

热点阅读