在Windows下同台电脑Git配置多个SSH-Key

这篇具有很好参考价值的文章主要介绍了在Windows下同台电脑Git配置多个SSH-Key。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

当一台电脑上有多个git账号时,比如:
a. 一个gitee,用于公司内部的工作开发;
b. 一个github,用于自己进行一些开发活动;
C. 一个gitlab,远程仓库的地址在服务器上做了ip端口转发;
想在git上同时使用,互不干扰,该如何处理?

一、生成密钥

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

git配置多个ssh key,工具大全,git,ssh,windows

若使用同个邮箱,则在~.ssh文件夹下复制id_rsa(生成私钥命名的对应文件)和id_rsa.pub(生成公钥命名的对应文件)文件,然后文件重命名;
若使用不同邮箱,则重复上面的命令,以此类推。

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

注意!!!
生成密钥的邮箱与仓库管理管理代码设置的邮箱要保持一致!

二、git识别新增的key(重要!!!)

ssh-agent bash
ssh-add ~/.ssh/id_rsa_gitee
ssh-add ~/.ssh/id_rsa_gitlab
ssh-add ~/.ssh/id_rsa_github

三、在~/.ssh/ 目录下新建或者修改config文件(关键!!!)

git配置多个ssh key,工具大全,git,ssh,windows

Host *
    HostKeyAlgorithms +ssh-dss
	PubkeyAcceptedKeyTypes +ssh-rsa
        
# 配置gitlab(PS:http://192.XXX.XXS.205:90/users/sign_in)
Host 192.xxx.XX.205 // 远程仓库的地址,域名或ip(不带端口号),可以自定义
    HostName 192.xxx.XX.205 // 远程仓库的真正的地址,域名或ip(不带端口号),不可更改
    // Port 端口号,如果有做转发需要在这里填写端口号,没有就不必要填
    Port 22 // 原本ip地址的端口号写的是90,奈何一直报错,尝试22成功了,22是ssh的端口号?!
    IdentityFile ~/.ssh/id_rsa_gitlab // 识别key的文件 PreferredAuthentications publickey // 可以不用配置
    User cai002 // 用户名
        IdentitiesOnly yes // 可以不用配置

# 配置github.com
Host github.com            
    HostName github.com
    IdentityFile ~/.ssh/id_rsa_github
    PreferredAuthentications publickey
    User encod
	IdentitiesOnly yes
	
# 配置gitee.com
Host gitee.com            
    HostName gitee.com
    IdentityFile ~/.ssh/id_rsa_gitee
    PreferredAuthentications publickey
    User acai
	IdentitiesOnly yes

四、部署SSH key

拷贝~/.ssh/id_rsa_github.pub和~/.ssh/id_rsa_gitlab.pub文件里面的内容, 然后打开对应的托管平台设置ssh-keys密钥的页面,把复制的内容粘贴进来就好了。
git配置多个ssh key,工具大全,git,ssh,windows
这样一来,我们就把服务器上面的key跟托管平台进行了关联。

五、远程测试ssh链接

测试config文件设置的git账号是否与托管平台的密钥部署设置成功

ssh -T git@gitee.com
ssh -T git@192.168.1.205
ssh -T git@github.com

# xxx! You’ve successfully authenticated, but GitHub does not provide bash access.
# 出现上述提示,连接成功

git配置多个ssh key,工具大全,git,ssh,windows

六、克隆/拉取项目

git clone git@one.gitee.com: one的用户名/xxx.git

git配置多个ssh key,工具大全,git,ssh,windows

番外一:git相关命令

git全局设置用户名及邮箱

// 自定义用户名
git config --global user.name "用户名" 
// 自定义邮箱
git config --global user.email "邮箱"

查看已经设置的git全局信息

git config -l

取消git全局设置的用户名及邮箱

git config --global --unset user.name 
git config --global --unset user.email

新建文件夹下git设置局部的用户名及邮箱

git config user.name "用户名"
git config user.email "邮箱"

注意!!!
若局部设置了用户名及邮箱则会优先识别局部设置的,反之是识别全局设置的用户名及邮箱。因此不取消全局设置的用户名及邮箱都可以,只要config文件设置好就ok!

番外二:遇到问题集合(避坑!!!)

一、打开Git Bash客户端(管理员身份运行)执行测试命令测试是否配置成功(会自动在.ssh目录生成known_hosts文件把私钥配置进去)输入以下命令出现以下报错:
git配置多个ssh key,工具大全,git,ssh,windows

解决方案:

  1. ~.ssh目录下是否有config文件,没有的话创建一个;
  2. 在config里面添加:
Host * 
    HostKeyAlgorithms +ssh-dss

二、克隆项目,git报错:OpenSSL SSL_read: Connection was reset, errno 10054
git配置多个ssh key,工具大全,git,ssh,windows

解决方案:

  1. 网络不稳定,连接超时导致;
    1)首先检查C盘下host文件中的github相关访问的域名对应的ip是否正确;不正确则修改,参考无法连接github,修改host映射。
    2)若IP正确,则多克隆几次;
  2. 修改设置,解除ssl验证。进入Git Bash Here,输入命令git config --global http.sslVerify "false"

git配置多个ssh key,工具大全,git,ssh,windows
此时,再执行git克隆操作,git报错:Logon failed, use ctrl+c to cancel basic credential prompt
git配置多个ssh key,工具大全,git,ssh,windows

解决方案:

  1. 在git bash 命令行下输入如下的命令:
setx GIT_TRACE ""
setx GCM_TRACE ""
  1. 删除tenant.cache
    删除 AppData\Local\GitCredentialManager目录下的tenant.cache文件

此时,再次执行git克隆操作,git还是报错:The authenticity of host 'github.com (20.205.243.166)' can't be established.\

解决方案:

  1. 首先查看自己用户目录下的.ssh目录下是否有三个密钥文件。

git配置多个ssh key,工具大全,git,ssh,windows
若只有两个的话,输入yes回车之后,会生成一个known_hosts文件。
git配置多个ssh key,工具大全,git,ssh,windows

  1. ssh -T git@github.com测试一下
    git配置多个ssh key,工具大全,git,ssh,windows
    图上可以明显看出缺少了公钥。
    若公钥文件没有生成,则操作生成密钥的命令操作;
    若密钥的文件已经生成,则把对应的公钥添加进GitHub上。
    此刻重新操作克隆成功。

注意克隆是公有仓库还是私有仓库的区别!!!
私有仓库不能使用http/https进行克隆,用ssh进行克隆才可以,否则会报错。

三、git克隆报错:ssh_exchange_identification: Connection closed by remote host
git配置多个ssh key,工具大全,git,ssh,windows

原因:

  1. 密钥问题;
  2. config中的配置问题:端口配置出错!!(关键问题所在)
# 配置gitlab(PS:http://192.XXX.XXS.205:90/users/sign_in)
Host 192.xxx.XX.205
    HostName 192.xxx.XX.205
    Port 22 // 原本ip地址的端口号写的是90,奈何一直报错,尝试22成功了,22是ssh的端口号?!
    IdentityFile ~/.ssh/id_rsa_gitlab // 识别key的文件 PreferredAuthentications publickey // 可以不用配置
    User cai // 用户名

config文件配置好中的端口号重新配置为22,则成功了。
git配置多个ssh key,工具大全,git,ssh,windows

四、出现如下报错:

Unable to negotiate with  192.xxx.xx.205 port 22: no matching host key type found. 
Their offer: ssh-rsa,ssh-dssfatal: Could not read from remote repository. 
Please make sure you have the correct access rightsand the repository exists.

解决方案:
新建config文件,然后添加

Host *
    HostKeyAlgorithms +ssh-dss
    PubkeyAcceptedKeyTypes +ssh-rsa

若添加的配置测试是否有效,执行命令ssh -T git@192.xxx.xx.205
若还是无效,看看是否添加密钥文件了,再次执行命令ssh-add \~/.ssh/id\_rsa文章来源地址https://www.toymoban.com/news/detail-756005.html

到了这里,关于在Windows下同台电脑Git配置多个SSH-Key的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在一台电脑上配置多个Git账号,工作、生活两不误

    任意文件夹下 Git Bash Here 然后输入如下命令来 unset 在操作完上述命令后,可以用来查看情况,这不是必须的。 输入如下代码来生成 ssh key 输入完之后,你可以一起回车,到出一个矩阵框后,就算成功了。默认的文件名应该是 id_rsa 同时还会生成 id_rsa.pub 两个文件 id_rsa 这个是

    2024年02月08日
    浏览(73)
  • Git配置ssh公钥(Windows 10)

     1、登录Gitee账号后,点击“个人主页”旁的设置,进入设置界面 2、在左侧工具栏找到“安全设置”--“SSH公钥”,点击进入  3、进入后点击“怎样生成公钥”,进入有操作提示的界面  4、打开 Git Bash Here 终端,复制文中给定的命令到终端执行    注意:这里的 xxxxx@xxxxx.

    2024年02月12日
    浏览(47)
  • git在一台电脑上配置不同的仓库(多个gitee仓库、或者不同的github仓库)

    在开发过程中,我们工作的时候难免会使用到两个不同的仓库,但是正常来说一电脑默认一个参考,直接会用全局命令 但是这样只能配置一个仓库了,本文介绍在一台电脑上配置多个仓库,简单易用,请欣赏! 前提:您已经掌握了git仓库命令,不需要很会,有过配置用 CA证

    2024年02月13日
    浏览(57)
  • 【git】一台电脑连接管理多个git账号

    目录 一、需求说明 二、基本操作 1、假定两个远程仓库的基本信息 2、生成不同标记的私匙和公匙 3、将~/.ssh目录下生成的四个文件添加到ssh 4、配置config 5、测试 6、配置用户名和邮箱 三、Git Bash使用操作 1、打开Git bash 2、配置本地用户名、邮箱 3、添加私匙 4、提交、更新项

    2024年02月15日
    浏览(73)
  • Github多个账号设置SSH 逐个问题击破 新手友好(Windows) (史上最全)

    在看了几十篇博文,经历了一天一夜的挣扎后,基本把能踩的坑都踩了个遍,终于能够用SSH进行Github多个账号的无缝切换,记录于此。话不多说,先来分享一波成功的喜悦: 如果你在Github多个账号设置SSH的过程中遇到了以下问题: No such file or directory Could not open a connection t

    2024年02月09日
    浏览(36)
  • 崭新电脑搭建Git的SSH - 设置 Git 的SSH秘钥 - 遇到的问题及解决办法

    配置使用ssh方式来提交和克隆代码。 大概可以分为一下几个步骤: 1)设置Git的user name和email:(如果是第一次的话) 2)检查是否已经有SSH Key。 3)生成密钥 4)添加密钥到ssh-agent (如果是第一次的话) 如果不清楚自己有设置用户名和账户的话,可以使用指令进行查询,如下:

    2023年04月17日
    浏览(38)
  • 如何在windows电脑上安装多个node,并可以进行随意切换

    一、进入官网http://nvm.uihtm.com/ 下载 二、启动解压后的程序 1.开始安装nvm 选择要安装的目录 一直下一步–下一步–最后点击完成 安装指定版本 查看已经安装的node版本 npm 安装出错:EEXIST:文件已存在,mkdir \\\'C:UsersuserAppDataLocalTempEEXIST:文件已存在,mkdir \\\'C:UsersuserAppDat

    2024年02月11日
    浏览(44)
  • 如何在windows电脑安装多个tomcat服务器和乱码问题

    tomcat网址 这里下载tomcat10为例子 分别命名为 8081、 8082、 8083 docs、examples、host-manager、manager文件夹 删除 ROOT文件夹内文件并创建index.html并在里面放置内容 也可以删除 上边的 index.jsp文件 重新创建下边这个文件 并在文件夹内输入 8081 start 在tomcat文件夹conf文件下 找到server.xml文

    2024年02月12日
    浏览(54)
  • 在Linux配置Git SSH的详细步骤;git配置ssh详细教程;

    在Linux或Mac OS上配置Git SSH的详细步骤如下: 1.打开终端,并输入以下命令检查是否已经在Linux下安装git 2.如果已经安装,则可以跳过此步骤。如果没有安装,请用以下命令进行安装git(推荐在Linux下的家目录下进行安装) 3.获取git配置ssh步骤如下: 4.如果不存在,请用以下命令生

    2024年02月07日
    浏览(87)
  • 使用windows电脑SSH客户端链接Iphone手机的sshd服务(免越狱)

    最近有需求使用电脑导出手机中特定app的文件。 当然可以直接连上数据线将手机中的文件下载下来。 为了能做到代码自动化导出,将手机作为一台电脑使用,将手机中的文件导出来。 关键问题是如何将手机作为电脑使用,这里有几个步骤(我使用的是Iphone手机)。 1.在手机上

    2024年02月10日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包