美文网首页
如何在同一台电脑分开使用两个git账号

如何在同一台电脑分开使用两个git账号

作者: 小鹅鹅鹅 | 来源:发表于2017-09-06 00:12 被阅读0次

    背景:使用github的时候,大家都知道需要给该账号添加一个SSH key才能访问,但是想在同一台电脑上既使用自己的github账号又可以使用公司的gitlab账号,该如何设置呢?又怎么指定push到哪个账号的test仓库上去呢?

    1.什么是SSH?

    SSH是Source Shell Protocol的缩写,SSH是建立在应用层和传输层基础上的安全协议。SSH是目前较为可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH可以有效防止远程管理过程中的信息泄漏问题。总结来说,SSH就是一种用于计算机之间的加密通信的安全协议。

    SSH工作原理

    当客户端连接到主机,希望使用SSH密钥身份验证,它将通知服务器的意图和使用将告诉服务器公钥。然后,服务器检查它的公钥authorized_keys文件,生成一个随机字符串,并使用公共密钥加密它。这个加密的消息只能由相关私钥进行解密。服务器将此加密消息发送到客户端来测试他们是否有关联的私钥。收到这个消息,客户端将使用私钥解密和结合的随机字符串显示先前商定的会话ID,然后生成MD5散列的值并将其传输到服务器。服务器已经有了原始消息和会话ID,因此可以比较MD5散列生成的这些值并确定,客户端必须有私钥。

    2.https 和 SSH 的区别:

    1、前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。
    2、https在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

    3.设置两个git账号的SSH

    1、首先需要检查你电脑是否已经有 SSH key
    $ cd ~/.ssh
    $ ls
    

    这两个命令就是检查是否已经存在 id_rsa.pub 或 id_dsa.pub 文件,如果文件已经存在,那么你可以跳过步骤2,直接进入步骤3。

    2、创建一个 SSH key
    $ ssh-keygen -t rsa -C "your_email@example.com"
    

    运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key 代码,如:

    Generating public/private rsa key pair.
    # Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]
    

    你可以不输入文件名,使用默认文件名,那么就会生成 id_rsa 和 id_rsa.pub 两个全局默认的秘钥文件,前者为私钥,后者为公钥。
    当然我们有两个代码仓库,所以最好写上文件名,如id_rsa_home或id_rsa_work. 这样ssh目录下会生成id_rsa_home和id_rsa_home.pub两个文件
    接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码)。也可以直接按回车键,那么push的时候就不需要输入密码,直接提交到github上了,如:

    Enter passphrase (empty for no passphrase): 
    # Enter same passphrase again:
    

    接下来,就会显示如下代码提示,如:

    Your identification has been saved in /c/Users/you/.ssh/id_rsa.
    # Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.
    # The key fingerprint is:
    # 70:e2:e5:25:06:6c:0b:1a:b1:73:69:18:3a:b4:f4:a2 your_email@example.com
    

    当你看到上面这段代码的收,那就说明,你的 SSH key 已经创建成功,你只需要添加到github的SSH key上就可以了。

    3、添加你的 SSH key 到 github上面去

    a、首先进入ssh目录,用vim编辑器打开id_rsa.pub,并复制其中的文本。

    cd ~/.ssh
    vi id_rsa.pub
    
    复制这段文本
    b、登录你的github账号,从右上角的设置( Settings )进入,然后点击菜单栏的 SSH key 进入页面添加 SSH key。
    c、点击 Add SSH key 按钮添加一个 SSH key 。把你复制的 SSH key 代码粘贴到 key 所对应的输入框中,记得 SSH key 代码的前后不要留有空格或者回车。当然,上面的 Title 所对应的输入框你也可以输入一个该 SSH key 显示在 github 上的一个别名。默认的会使用你的邮件名称。
    4、测试一下该SSH key

    在git Bash 中输入以下代码

    $ ssh -T git@github.com
    

    当你输入以上代码时,会有一段警告代码,如:

    The authenticity of host 'github.com (207.97.227.239)' can't be established.
    # RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
    # Are you sure you want to continue connecting (yes/no)?
    

    这是正常的,你输入 yes 回车既可。如果你创建 SSH key 的时候设置了密码,接下来就会提示你输入密码,如:

    Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa':
    

    当然如果你密码输错了,会再要求你输入,知道对了为止。

    注意:输入密码时如果输错一个字就会不正确,使用删除键是无法更正的。

    密码正确后你会看到下面这段话,如:

    Hi username! You've successfully authenticated, but GitHub does not
    # provide shell access.
    

    如果用户名是正确的,你已经成功设置SSH密钥。如果你看到 “access denied” ,者表示拒绝访问,那么你就需要使用 https 去访问,而不是 SSH 。

    想要分开使用git账号就一定要分别配置两个SSH。

    默认的key和工作(work) key

    相关文章

      网友评论

          本文标题:如何在同一台电脑分开使用两个git账号

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