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

您所在的位置:网站首页 电脑设置两个用户怎么切换 git在本地配置多个ssh key账户(使用两个git账号)

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

2024-07-05 19:51| 来源: 网络整理| 查看: 265

大多数时候,我们的机器上会有很多的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

8143044-ba40c2e25e75888f.webp

在github,gitLab,Tgit相应的位置,找到SSH-key的配置位置,用记事本打开.ssh文件夹下的id_rsa.pub文件(公钥,没有pub的是私钥,私钥很重要,不能随意透漏出去),这个文件中存放的就是刚才生成的ssh-key;把文件中所有的字符串复制,粘贴到相应位置中保存即可. 添加公钥: 复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,将生成的 public key 添加到仓库中。 4. 配置全局git 用户和邮箱

在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