美文网首页代码托管
git在本地配置多个ssh key账户(使用两个git账号)

git在本地配置多个ssh key账户(使用两个git账号)

作者: 带刀打天下 | 来源:发表于2019-02-28 11:10 被阅读0次
    1. 生成两个sshkey

    生成第一个sshkey

    $ ssh-keygen -t rsa -C "你的邮箱1@xxx.com"
    

    生成第二个sshkey

    $ ssh-keygen -t rsa -C "你的邮箱2@xxx.com"
    

    注意:不要一路回车,要对文件进行重命名。

    image.png

    在这里我创建的第一个sshkey是id_rsa,第二个是 id_rsa_two

    image.png
    2. 配置 config

    我们需要在目录: ~/.ssh/ (linux),C:\Users\admin\.ssh\ (windows),创建config文件,并且配置ssh key的路由策略。
    创建config文件:

    $ touch config
    

    linux 下 config 配置:

    # gitee server one
    Host gitee.com
        HostName gitee.com
        User git
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa
    # gitee server two
    Host gitee_two.com
        HostName gitee.com
        User git
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_two
    

    windows 下 config 配置:

    #gitee server one
    Host gitee.com
        Hostname gitee.com
        User git
        PreferredAuthentications publickey
        IdentityFile C:\\Users\\\admin\\.ssh\\id_rsa
    #gitee server two
    Host gitee_two.com
        Hostname gitee.com
        User git
        PreferredAuthentications publickey
        IdentityFile C:\\Users\\\admin\\.ssh\\id_rsa_two
    

    Host : 相当于一个别名,远程仓库地址的域名别名它涵盖了下面一个段的配置,我们可以通过他来替代将要连接的服务器地址。这里可以使用任意字段或通配符。访问ssh的时候如果服务器地址能匹配上这里Host指定的值,则Host下面指定的HostName将被作为最终的服务器地址使用,并且将使用该Host字段下面配置的所有自定义配置来覆盖默认的/etc/ssh/ssh_config配置信息。
    HostName :真正连接的服务器地址
    User:自定义的用户名
    PreferredAuthentications 指定优先使用哪种方式验证,支持密码和秘钥验证方式
    IdentityFile:指定本次连接使用的密钥文件

    3. 添加sshkey

    通过查看 ~/.ssh/id_rsa.pub 文件内容,获取到你的 public key

    cat ~/.ssh/id_rsa.pub
    
    image.png
    • 添加公钥:
      复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,将生成的 public key 添加到仓库中。( 针对于码云
    4. 验证是否成功

    连接测试

    [root@hostname .ssh]# ssh -T git@gitee.com
    Hello 用户名 You've connected to Coding.net by SSH successfully!
    [root@hostname .ssh]# ssh -T git@gitee_two.com
    Hi 用户名! You've successfully authenticated, but GitHub does not provide shell access.
    
    image.png
    5. 拉取项目设置

    通过上述设置,就可以通过不同的Host来针对不同的git仓库和git项目使用不同的ssh key。
    注意:通常情况下我们从git仓库拉取的项目ssh访问地址,类似这种git@git仓库地址:用户名/项目名.git。一定要把这里的git仓库地址替换为ssh config里面设定的Host。

    [root@hostname .ssh]# git clone git@gitee.com:用户名/项目名.git
    替换为如下
    [root@hostname .ssh]# git clone git@gitee_two.com:用户名/项目名.git
    
    6. 关联本地已有的项目

    通过上述设置,就可以通过不同的Host来针对不同的git仓库和git项目使用不同的ssh key。
    注意:通常情况下我们将本地仓库与git远程仓库进行关联时的地址是ssh访问地址时,类似这种git@git仓库地址:用户名/项目名.git。一定要把这里的git仓库地址替换为ssh config里面设定的Host。

    git remote add origin  git@gitee.com:用户名/项目名.git 
    git remote add origin  git@gitee_two.com:用户名/项目名.git 
    

    相关文章

      网友评论

        本文标题:git在本地配置多个ssh key账户(使用两个git账号)

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