TypeCodes

CentOS系统BitBucket、GitHub和Coding等多git账户的配置

目前自己主要在BitBucket、GitHub和Coding这三个Git平台创建了一些项目,所以这篇文章以自己的CentOS7.1服务器作为示例,说说如何在Linux系统中配置不同平台的Git仓库,也即多git账户的配置。

类似于Windows机器上的git配置方法,在CentOS上也是一样的。通过设置Git全部变量的配置文件~/.ssh/config和当前工作仓库的配置文件your_git_project_root/.git/config即可。

当前git工作仓库的.git目录

1 Git全部变量的配置文件:~/.ssh/config

如上图所示,git全部变量的配置文件~/.ssh/config在当前用户的.ssh目录下面,通过配置这个文件可以实现对多个不同平台的Git账户进行整体控制。例如,使用ssh身份认证的RSA密钥对的存放位置;使用git push的时候,到底是推送到BitBucket还是GitHub活着Coding呢?这些都是由这个文件控制的。

[root@typecodes .ssh]# vim config 
Host github.com
    HostName        github.com
    User            vfhky
    IdentityFile    ~/.ssh/github_rsa

Host git.coding.net
    HostName        git.coding.net
    User            vfhky
    IdentityFile    ~/.ssh/coding_rsa

Host bitbucket.org
    HostName        bitbucket.org
    User            vfhky
    IdentityFile    ~/.ssh/bitbucket_rsa

Host typecodes.com
    HostName        typecodes.com
    Port            8866
    User            root
    IdentityFile    ~/.ssh/typecodes_rsa

配置要点: 1、Host表示主机名,当在每个具体的git项目中执行了git操作,那么会先在这个文件里面所有的HOST名字中进行查找匹配出对应的SSH或者HTTPS地址。通过Host别名和User的配置,可以将不同的Git账户(即使是同一平台的)的区分开来;2、IdentityFile表示使用SSH登录认证时的私钥路径(一般在.ssh目录下面),对应的公钥复制到对应的Git平台上。

Git的ssh身份认证的RSA密钥对

注意:如前文《Coding.net上git仓库ssh地址的"bug"》所述,如果错误的配置了Host,那么会造成Permission denied的错误。

2 当前Git项目的配置文件:your_git_project_root/.git/config

小节1中是全部变量的配置,那么在对应每个具体的Git项目中,还需要做一些配置。

vim编辑当前Git项目的隐藏目录.git下面的config文件(以bitbucket为例),这里很容易猜到git push origin master命令的含义和来源。我们在末尾添加[user]信息,包括name和email。当然,也可以直接通过命令git config --global user.name "your git-account-name"git config --global user.email "your git-account-email"配置。

当前Git项目的配置文件

如果[user]信息未配置,很可能在执行git命令时报错:

[user]信息未配置时报错

3 结束:关于SSH登录认证的RSA公私钥的权限设置

小节1中已经说了,git的SSH登录认证的RSA私钥存放在当前用的.ssh目录下面。我们需要尽量降低该私钥文件的权限,否则会报Permissions 0644 for '~/.ssh/bitbucket_rsa' are too open.的错误。

设置git的SSH登录认证的RSA私钥权限为0600

打赏支持

Comments »