美文网首页
Ubuntu系统git多账号配置

Ubuntu系统git多账号配置

作者: lostsearover | 来源:发表于2017-08-18 16:05 被阅读0次

    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
    
    

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

    参考链接

    相关文章

      网友评论

          本文标题:Ubuntu系统git多账号配置

          本文链接:https://www.haomeiwen.com/subject/umyarxtx.html