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

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错误

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值