zoukankan      html  css  js  c++  java
  • 如何在同一台电脑上使用两个github账户

    场景:使用github的时候,大家都知道需要给该账号添加一个SSH key才能访问,参考具体设置。当然如果你在多台机器使用一个账户,你可以为该账户添加多个SSH key。由于github是使用SSH key的fingerprint来判定你是哪个账户,而不是通过用户名,这样你就可以在设置完之后,在本地直接执行下面的语句,它就会自动使用你的.ssh/id_rsa.pub所对应的账户进行登陆,然后执行相关命令。

    1 #本地建库
    2 $ git init
    3 $ git commit -am "first commit'
    4 
    5 #push到github上去
    6 $ git remote add origin git@github.com:xxxx/test.git
    7 $ git push origin master

    但是如果你想在一台机器使用两个github账号(比如私人账号和工作用账号)。这个时候怎么指定push到哪个账号的test仓库上去呢?

    解决方案(假设你已经拥有私有账号且已经OK,现在想使用另一个工作用账号):

    1:为工作账号生成SSH Key

    $ ssh-keygen -t rsa -C "your-email-address"
    
    #存储key的时候,不要覆盖现有的id_rsa,使用一个新的名字,比如id_rsa_work

    2:把id_rsa_work.pub加到你的work账号上

    3:把该key加到ssh agent上。由于不是使用默认的.ssh/id_rsa,所以你需要显示告诉ssh agent你的新key的位置

    $ ssh-add ~/.ssh/id_rsa_work
    
    # 可以通过ssh-add -l来确认结果

    4:配置.ssh/config

    $ vi .ssh/config
    
    # 加上以下内容
    #default github
    Host github.com
      HostName github.com
      IdentityFile ~/.ssh/id_rsa
    
    Host github_work
      HostName github.com
      IdentityFile ~/.ssh/id_rsa_work

    5:这样的话,你就可以通过使用github.com别名github_work来明确说你要是使用id_rsa_work的SSH key来连接github,即使用工作账号进行操作。

    #本地建库
    $ git init
    $ git commit -am "first commit'
     
    #push到github上去
    $ git remote add origin git@github_work:xxxx/test.git
    $ git push origin master

     ps: 如果执行ssh-add的时候,出现这样的错误,说明ssh-agent没有启动起来

    Could not open a connection to your authentication agent.

    这个时候需要手动启动ssh-agent:

    exec ssh-agent /bin/bash

    也可以直接在.bash_profile里面自动启动,这样就不用每次都手动启动

    SSH_ENV="$HOME/.ssh/environment"
    
    function start_agent {
         echo "Initialising new SSH agent..."
         /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
         echo succeeded
         chmod 600 "${SSH_ENV}"
         . "${SSH_ENV}" > /dev/null
         /usr/bin/ssh-add;
    }
    
    # Source SSH settings, if applicable
    
    if [ -f "${SSH_ENV}" ]; then
         . "${SSH_ENV}" > /dev/null
         #ps ${SSH_AGENT_PID} doesn't work under cywgin
         ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
             start_agent;
         }
    else
         start_agent;
    fi
  • 相关阅读:
    tyvj 1031 热浪 最短路
    【bzoj2005】 [Noi2010]能量采集 数学结论(gcd)
    hdu 1394 Minimum Inversion Number 逆序数/树状数组
    HDU 1698 just a hook 线段树,区间定值,求和
    ZeptoLab Code Rush 2015 C. Om Nom and Candies 暴力
    ZeptoLab Code Rush 2015 B. Om Nom and Dark Park DFS
    ZeptoLab Code Rush 2015 A. King of Thieves 暴力
    hdoj 5199 Gunner map
    hdoj 5198 Strange Class 水题
    vijos 1659 河蟹王国 线段树区间加、区间查询最大值
  • 原文地址:https://www.cnblogs.com/foxracle/p/2599830.html
Copyright © 2011-2022 走看看