文章目录

  • Github多个账号设置SSH 逐个问题击破 新手友好(Windows) (史上最全)
    • 环境
    • 生成SSH key
    • 将新密钥添加到SSH agent中
    • 修改config文件
    • GitHub添加SSH Key
    • 测试
    • 参考文章

Github多个账号设置SSH 逐个问题击破 新手友好(Windows) (史上最全)

在看了几十篇博文,经历了一天一夜的挣扎后,基本把能踩的坑都踩了个遍,终于能够用SSH进行Github多个账号的无缝切换,记录于此。话不多说,先来分享一波成功的喜悦:

如果你在Github多个账号设置SSH的过程中遇到了以下问题:

  • No such file or directory
  • Could not open a connection to your authentication agent
  • Connection closed by remote host
  • the agent has no identities
  • ine 1: Bad configuration option: \377\376h
  • terminating, 1 bad configuration options
  • Permission denied (publickey)
  • Could not resolve hostname github.com
  • ssh_dispatch_run_fatal
  • kex_exchange_identification
  • connection time out
  • connection aborted
  • Connection closed by remote host

或者Ping github.com请求超时,本文会有一定借鉴意义。

环境

先说一下我的环境是:Windows11,在此基础下进行Github多个账号设置SSH

生成SSH key

首先win+X打开windows终端(管理员),输入 cd ~/.ssh

如果提示No such file or directory,可以自己在C:\Users\用户名\ 文件夹下自己新建一个名为.ssh的文件夹,然后再在终端输入cd ~/.ssh,如果依旧提示No such file or directory,以及在接下来的过程中凡是出现No such file or directory,都可以采取以下方法:
将cd ~/.ssh命令中的路径替换为完整路径,即:cd C:/Users/用户名/.ssh
(用户名为你自己电脑的用户名)
如果用户名中有空格,则需要将用户名用双引号引起来,即:cd C:/Users/“用户名”/.ssh

成功进入.ssh文件夹后,输入以下代码生成不同账号的SSH key

ssh-keygen -t rsa -C "注册Github时用的邮箱1" //转入完成后一直回车,默认会生成id_rsa‘(私钥)以及id_rsa.pub(公钥)两个文件
ssh-keygen -t rsa -C "注册Github时用的邮箱2" -f  C:/Users/用户名/.ssh/id_rsa_person/ //转入完成后一直回车,则会生成id_rsa_person以及id_rsa.person.pub两个文件

成功后如下图:

将新密钥添加到SSH agent中

之前参考的文章只说了将新的私钥添加到SSH agent中,但是实际上,每个要用到的私钥最好都添加一遍,命令如下:

ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_rsa_person

如果提示Could not open a connection to your authentication agent,那么尝试以下命令后再输入以上命令:

ssh-agent bash

如果提示No such file or directory,且修改为全路径无效,或者提示the agent has no identities,则需要检查ssh-agent服务是否启动:

get-service ssh*

如过Status为Stopped,启动服务:

Set-Service -Name ssh-agent -StartupType Manual
Start-Service ssh-agent


输入ssh-add -l 检查:

成功后可重新输入上面的两行代码,将私钥添加到SSH agent中

修改config文件

在~/.ssh目录下找到config文件,如果没有就创建:

echo love >>config

再次进入该目录,即可看见config文件:

用记事本打开config文件,修改参照以下:

配置文件参数:
Host:别名,Host 可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
Port:端口 (22(default))
HostName:要登录主机的主机名
User:登录名
PreferredAuthentications:强制使用 Public Key 验证(no(default)/yes)
IdentitiesOnly :只接受SSH key 登录
IdentityFile:指明上面User对应的 identityFile 路径 (就是私钥)

保存文件为UTF-8格式并退出,如果此时该文件夹既有config又有config.txt(后缀名需要显示出来),需要删掉原来的config,并去掉config.txt的后缀.txt。

**注意:**1.有可能会提示line 1: Bad configuration option: \377\376h、terminating, 1 bad configuration options等错误,这是因为没有将config文件保存为不含BOM的UTF-8格式。

2.保险起见,我又将该配置加入了 I:\Program Files\Git\etc\ssh\ssh_config (Git bash 的安装路径) (如果没有安装GIT,此步可省略)

GitHub添加SSH Key

打开Github官网,点击右上角用户头像,选择settings

新建一个SSH Key,将 C:\Users\用户名.ssh\id_rsa.pub(可以用记事本打开)的公钥内容复制进去,并且取一个名字(建议为登录设备的名字)。然后Sign out,登录另一个账号,重复步骤,将 C:\Users\用户名.ssh\id_rsa_person.pub的公钥内容复制进去

测试

ssh -T git@github.com \\出现Are you sure you want to continue connecting (yes/no/[fingerprint])? 输入y即可
ssh -T git@me.github.com \\出现Are you sure you want to continue connecting (yes/no/[fingerprint])? 输入y即可

**注意:**1.如果提示Connection closed by remote host、Permission denied (publickey)、Could not resolve hostname github.com、ssh_dispatch_run_fatal、kex_exchange_identification、connection time out、connection aborted、Connection closed by remote host等一系列问题,或者Ping github.com请求超时,且在确认没有网络问题、没有使用代理、参考其他博主修改端口22/443无用(参考文章:修改端口)的情况下,可采用以下方法(我也是试了各种方法终于找到了适合自己的):

在 C:\Windows\System32\drivers\etc下的 hosts 文件中,在末尾添加以下文字:

192.30.255.112  github.com git
185.31.16.184 github.global.ssl.fastly.net

和修改config文件一样,如果同时生成了txt文件,记得删掉原来的hosts文件,并且去掉hosts.txt的.txt(这一步可能需要关掉电脑的防火墙和杀毒软件等)

参考文章

安装Git及配置
github 多个账号问题
Windows下使用ssh-add报错
多个 github 账号、github 和 gitee 不同账号如何配置 ssh key
修改端口
git push出现ssh_dispatch_run_fatal错误

Github多个账号设置SSH 逐个问题击破 新手友好(Windows) (史上最全)相关推荐

  1. Github教程】史上最全github使用方法:github入门到精通

    [Github教程]史上最全github使用方法:github入门到精通 [初识Github] 首先让我们大家一起喊一句"Hello Github".YEAH!就是这样. Git是 ...

  2. 2016年GitHub上史上最全的Android开源项目分类汇总

    以下内容为转载 版主原网址 http://itindex.net/detail/51896-github-android-开源 GitHub上史上最全的Android开源项目分类汇总 今天在看博客的时 ...

  3. GitHub上史上最全的Android开源项目分类汇总 (转)

    GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...

  4. GitHub 标星 44k!史上最全技术面试手册!

    大家好,我是为前端娱乐圈操碎了心的小迷妹,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标. 每天上班必须做的一件事情,就是打开 ...

  5. 【Mood 16 】史上最全github使用方法:github入门到精通

    [初识Github] 首先让我们大家一起喊一句"Hello Github".YEAH!就是这样. Git 是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作L ...

  6. 【Github教程】史上最全github用法:github入门到精通

    原文 http://www.eoeandroid.com/thread-274556-1-1.html [初识Github] 首先让我们大家一起喊一句"Hello Github". ...

  7. github史上最全教程

    一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...

  8. 【Github教程】史上最全github使用方法:github入门到精通(转自eoeandroid.com)

    本文来源:http://www.eoeandroid.com/thread-274556-1-1.html 另附经典教程网址 :http://wuyuans.com/2012/05/github-si ...

  9. 【Github教程】史上最全github使用方法:github入门到精通

    [初识Github] 首先让我们大家一起喊一句"Hello Github".YEAH!就是这样. Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Li ...

最新文章

  1. 数值计算动态语言Julia 1.0发布
  2. gRPC编码初探(java)
  3. [置顶] 混响音效
  4. java向有序数组里插数_Java向有序数组中插入一个元素,,使其仍按有序排列,并求出这个插入元素的下标...
  5. 洛谷P2050 美食节
  6. 为什么要学习Linux操作系统?
  7. Gnuplot的简介与常用操作
  8. mysql 备份还原策略_Mysql备份恢复
  9. wwwscan目录扫描器的逆向分析
  10. GMap.NET控件使用
  11. stm32采集脉冲信号_stm32用ETR采集外部脉冲个数出现二分频问题,请教哪里设置......
  12. 力扣 373. 查找和最小的K对数字
  13. C C++基础的Java教程
  14. Vite 4.0 正式发布!
  15. 计算机管理系统验收报告,管理信息系统验收报告
  16. 电快速瞬变脉冲群实验(内部电源设备)
  17. thinkph5 新增命令/添加命令command
  18. 2013华为校园招聘面经
  19. POI 给单元格添加批注
  20. html制作状态栏数字时钟,超级实用的html5制作15种数字时钟样式代码

热门文章

  1. Mac中安装Tomcat
  2. 数据库范式——通俗易懂【转】
  3. 喝酒和感情深有必然的联系吗
  4. window11日常使用中的小知识
  5. DCS编程用C语言,如何用C语言对DMA控制器编程
  6. 中国软件杯 公共地点人流量计算的云监管平台 业务部分思路分享
  7. Oracle 11G OCP 1Z0-053 475
  8. r语言实现岭回归_预测分析:R语言实现
  9. 红包雨实现(优化版)
  10. JAVA博物馆交流平台计算机毕业设计Mybatis+系统+数据库+调试部署