git在本地配置多个ssh key账户(使用两个git账号) |
您所在的位置:网站首页 › 电脑设置两个用户怎么切换 › git在本地配置多个ssh key账户(使用两个git账号) |
大多数时候,我们的机器上会有很多的git host,比如公司gitlab、github、oschina等,那我们就需要在本地配置多个ssh key,使得不同的host能使用不同的ssh key ,做法如下(以公司gitlab和github为例): 1. 生成两个sshkey 为公司生成一对秘钥ssh key $ ssh-keygen -t rsa -C "你的邮箱@xxx.com" -f ~/.ssh/id_rsa_gitlab 为github生成一对秘钥ssh key $ ssh-keygen -t rsa -C "你的邮箱@xxx.com" -f ~/.ssh/id_rsa_github注意: 如果没有使用-f指令,不要一路回车,要对文件进行重命名。 输入路径:/c/Users/Admin/.ssh/id_rsa_gitlab id_rsa_gitlab是新的文件名 (暂时还少一个文件,在第5步会出现该文件) 2. 配置 config我们需要在目录: linux: ~/.ssh/ windows: C:\Users\admin\.ssh\,创建config文件(无后缀名),并且配置ssh key的路由策略。 创建config文件: $ touch config linux 下 config 配置: # gitlab Host gitlab.com HostName gitlab.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_gitlab # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_github # 配置文件参数 # Host Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件 # HostName 要登录主机的主机名 # User 登录名 # PreferredAuthentications publickey,password,keyboard-interactive # IdentityFile 指明上面User对应的identityFile路径 windows 下 config 配置: # gitlab Host gitlab.com HostName gitlab.com PreferredAuthentications publickey IdentityFile C:\\Users\\\admin\\.ssh\\id_rsa_gitlab # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile C:\\Users\\\admin\\.ssh\\id_rsa_github # 配置文件参数 # Host Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件 # HostName 要登录主机的主机名 # User 登录名 # PreferredAuthentications publickey,password,keyboard-interactive # IdentityFile 指明上面User对应的identityFile路径 Host : 相当于一个别名,远程仓库地址的域名别名它涵盖了下面一个段的配置,我们可以通过他来替代将要连接的服务器地址。这里可以使用任意字段或通配符。访问ssh的时候如果服务器地址能匹配上这里Host指定的值,则Host下面指定的HostName将被作为最终的服务器地址使用,并且将使用该Host字段下面配置的所有自定义配置来覆盖默认的/etc/ssh/ssh_config配置信息。 HostName :真正连接的服务器地址 User:自定义的用户名 PreferredAuthentications 指定优先使用哪种方式验证,支持密码和秘钥验证方 publickey,password publickey,keyboard-interactive IdentityFile:指定本次连接使用的密钥文件 3. 添加sshkey到仓库设置通过查看 ~/.ssh/id_rsa.pub 文件内容,获取到你的 public key cat ~/.ssh/id_rsa.pub在Git Bash中运行以下两条配置命令,将用户名和Github注册邮箱配置为全局账户: (电脑设备配置过一次即可,其余时候可以省略不管,不影响) $ git config --global user.name "your_username" #设置用户名 $ git config --global user.email "your_registered_github_Email" #设置邮箱地址(建议用注册giuhub的邮箱) 5. 验证是否成功连接测试 $ ssh -T [email protected] //github的检测 $ ssh -T [email protected] //gitlab的检测 其他的如T-git也类似,就是换个网址(Warning之后会生成第3步缺失的known_hosts文件) (里面是一些远程库的域名和SSH钥匙信息) 这时候会提示Are you sure you want to continue connecting (yes/no)?,意思是#确认你是否继续连接,输入yes并点击回车(一定要输入yes); 如果生成ssh key的时候密码不为空,则会看到类似于这样的提示:Enter passphrase for key '/c/Users/xxxx_000/.ssh/id_rsa':,意思是#生成ssh kye是密码为空则无此项,若设置有密码则有此项且,输入生成ssh key时设置的密码即可; 如果能看到类似于Hi XXXX! You've successfully authenticated, but GitHub does not provide shell access.这样的提示,则表示ssh key配置成功!(有的时候也不见得会如此显示,我在配置git时就报了一个莫名其妙的错误,什么0通道被占用,反正有问题google一下,去建一个远程仓库测试一下能否正常clone,push) 5. 拉取项目设置通过上述设置,就可以通过不同的Host来针对不同的git仓库和git项目使用不同的ssh key。 注意:通常情况下我们从git仓库拉取的项目ssh访问地址,类似这种git@git仓库地址:用户名/项目名.git。一定要把这里的git仓库地址替换为ssh config里面设定的Host。 [root@hostname .ssh]# git clone [email protected]:用户名/项目名.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 [email protected]:用户名/项目名.git git remote add origin git@gitee_two.com:用户名/项目名.git 参考地址: www.jianshu.com/p/d6c6f37fb… blog.csdn.net/weixin_3431… blog.csdn.net/qq_15936309… [git配置多用户和邮箱] www.cnblogs.com/xiangtingsh… |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |