美文网首页
Git 的多账户 SSH 配置

Git 的多账户 SSH 配置

作者: 浕亾倳厛兲掵 | 来源:发表于2018-11-29 19:21 被阅读0次

    前言

    一般来说,为了使用的方便,在 Git 方式的版本控制仓库上都会配置 ssh 连接方式,这样每次在提交代码的时候不用重复输入自己的邮箱、密码,免去很多麻烦。但是,如果在同时拥有 GitHub 、GitLab、Coding 等账号的前提下,又怎样在同一台电脑上进行 ssh 配置呢?

    多账号的 SSH 配置

    这里的要点实际上就在 ssh-key 的配置上。在生成 ssh-key 的时候,也就是在运行下面这句生成 key 的命令时,是可以指定 key 的名称的:
    $ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM" -f ~/.ssh/github
    后面的“-f ~/.ssh/github”就指定了此 key 的名称为 github 。实际使用中可以根据自己的需要进行 key 名称的设置。
    按照这个生成方法依次生成需要用在各个平台下的 key ,然后将对应的 .pub 结尾的 key 文件内容完整复制到相应平台的 SSH 配置处。(不带“-f ~/.ssh/github”参数,直接运行也是可以根据提示一步步自定义 key 名称的)
    之后的重点是——如何在本机识别不同的平台,并使用相应平台对应的 key 文件。

    mutil_git_01.png
    方法也很简单,只需要在 .ssh 文件夹下,新建一个 config 文件,config 文件中编辑如下内容:
    Host Github主机别名 HostName github.com IdentityFile ~/.ssh/id_rsa_gitlab
    Host GitLab主机别名 HostName gitlab.com IdentityFile ~/.ssh/id_rsa_github
    Host Coding主机别名 HostName coding.net IdentityFile ~/.ssh/id_rsa_coding
    其中,主机别名根据自己喜好自取,HostName 对应的是各个平台的主域名地址,之后的 key 名称则是在使用 ssh-keygen 命令生成相应 key 时候自定义的 key 名称。

    在本机与平台端公共 key 都配置好后,分别使用相应的连接方法:
    GitLab
    ssh -T git@gitlab.com
    GitHub
    ssh -T git@github.com
    Coding
    ssh -T git@git.coding.net
    与各个平台连接成功后,即可正常使用。
    多账号配置后产生的问题
    按照上面的方法配置后,实际上已经配置成功了,从对应仓库拉代码和提交更新都没有问题。但是,这里有一个细节需要注意。在默认情况下,大家配置 commit 的用户名称和邮件地址时都是使用的下面的方法:
    git config --global user.name 你的用户名
    git config --global user.email 你的邮箱地址
    这个两个方法,因为带了参数 --global ,实际上定义的是全局变量,也就是说,不过你是向 GitHub、GitLab 还是 Coding 提交代码,作者名称和邮箱地址都是上面定义的两个。一般来说,这都不是大家想要的效果,最起码得区分开来。这里就需要在各个拉下来的本地代码仓库中找到 .git 文件夹中的 config 文件,其内容如下:

    [core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
    [user]
        name = xxxx
        email = xxxx
    [remote "origin"]
        url = xxxxxxxx
        fetch = xxxxxxxx
    

    在没有进行配置的默认情况下,是没有 [user] 这一项的,可以选择直接编辑这个文件,或者在当前代码仓库根目录运行局部配置命令,进行配置即可:
    git config user.name 你的用户名
    git config user.email 你的邮箱地址

    相关文章

      网友评论

          本文标题:Git 的多账户 SSH 配置

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