zl程序教程

您现在的位置是:首页 >  后端

当前栏目

git问题:在本地配置多个ssh key账户

ssh配置Git 本地 多个 Key 账户 问题
2023-09-27 14:27:10 时间

问题描述

当我们工作的时候,会遇到这样的情况:公司用的gitlab仓库,你自己私下用github仓库,这样就产生了一个问题,我们需要登录不同的账号管理不同的git仓库,那么怎么做呢,接下来看我操作⬇️

解决方法

我们要生成两个ssh key来向不同的git仓库push代码

  1. ssh-keygen -t rsa -C "公司邮箱@xxx.com"

  2. ssh-keygen -t rsa -C "自己邮箱@xxx.com"

  3. 在家目录执行以上代码,然后回车,会提示你输入一个名字,如果你不输入直接回车会使用默认的名字生成id_rsa.pub和id_rsa文件,(我之前用公司的邮箱生成ssh key是直接回车的,自已邮箱输入了名字github_rsa,就生成了如图的样子)

  4. 在这里插入图片描述

  5. 然后新建一个config文件,如上图,在里面输入
    linux下:

    #dxy gitlab
    	Host gitlab.dxy.net
    	HostName gitlab.dxy.net
    	PreferredAuthentications publickey
    	IdentityFile ~/.ssh/id_rsa
    #my github
    	Host github.com
    	HostName github.com
    	PreferredAuthentications publickey
    	IdentityFile ~/.ssh/github_rsa
    

    windows下:

    #dxy gitlab
    	Host gitlab.dxy.net
    	HostName gitlab.dxy.net
    	PreferredAuthentications publickey
    	IdentityFile C:\\Users\\\admin\\.ssh\\id_rsa
    #my github
    	Host github.com
    	HostName github.com
    	PreferredAuthentications publickey
    	IdentityFile C:\\Users\\\admin\\.ssh\\github_rsa
    

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

  6. 然后,将刚刚生成的公司的公钥id_rsa.pub放到gitlab的ssh配置里;自己的公钥github_rsa.pub放到自己github的ssh配置里。自此,大功告成,你就可以就可以通过不同的Host来针对不同的git仓库和git项目使用不同的ssh key啦~