配置多个Git账户在HTTPS端口使用SSH连接Github


kex_exchange_identification: Connection closed by remote host 问题解决方案

造成的原因

https://github.com/vernesong/OpenClash/issues/1960

代理的节点服务商为了防止滥用把 22 出口端口屏蔽了。

解决方法:

  1. 关闭代理软件
  2. 修改代理软件转发配置,不代理22端口
  3. 更换不屏蔽22端口的节点(比较少)
  4. 在HTTPS端口使用SSH连接

前两种方法会造成clone不经过代理,下载非常慢。

第四种方法实测即使不启用代理,使用443端口clone也比22端口更快。

在HTTPS端口使用SSH连接

要测试是否可以通过 HTTPS 端口进行 SSH,请运行以下 SSH 命令:

$ ssh -T -p 443 git@ssh.github.com
> Hi USERNAME! You've successfully authenticated, but GitHub does not provide shell access.

如果您能够通过 SSH 连接到git@ssh.github.com端口 443,您可以覆盖您的 SSH 设置以强制任何与 GitHub.com 的连接通过该服务器和端口运行。

要设置 SSH 配置文件,请编辑该文件~/.ssh/config,并添加以下部分:

Host github.com
Hostname ssh.github.com
Port 443
User git

Clone存储库

现在,要克隆存储库,您可以运行以下命令:

$ git clone ssh://git@ssh.github.com:443/<YOUR-USERNAME>/<REPOSITORY>.git

设置多个账户后如何通过指定账户 clone

~/.ssh/config 有如下内容:test 为第二个Git账户。

# 默认git@github.com通过443
Host github.com
Hostname ssh.github.com
Port 443
User git

# 默认git用户
Host git@github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa

# 为test用户单独设置443
Host test
HostName ssh.github.com
User git
Port 443
IdentityFile ~/.ssh/id_test

测试test用户是否正常:

ssh -T test

克隆则类似的:

git clone ssh://test:443/<YOUR-USERNAME>/<REPOSITORY>.git

已有项目换源:

git remote remove origin
git remote add origin ssh://git@ssh.github.com:443/<YOUR-USERNAME>/<REPOSITORY>.git
# 设置分支远程对应分支****
git branch --set-upstream-to=origin/main main
git branch --set-upstream-to=origin/<remote> <local>

文章作者: iKnow
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 iKnow !
评论
 本篇
配置多个Git账户在HTTPS端口使用SSH连接Github 配置多个Git账户在HTTPS端口使用SSH连接Github
kex_exchange_identification: Connection closed by remote host 问题解决方案造成的原因https://github.com/vernesong/OpenClash/issues/1
2023-05-18
下一篇 
【油猴脚本开发进阶】VSCode + Webpack + TypeScript 油猴开发环境搭建,本地调试、实时热刷新、自动构建和发布 【油猴脚本开发进阶】VSCode + Webpack + TypeScript 油猴开发环境搭建,本地调试、实时热刷新、自动构建和发布
【油猴脚本开发进阶】VSCode + Webpack + TypeScript 油猴开发环境搭建,支持本地调试、实时热刷新、自动构建和自动发布更新 本教程适合有一定编程基础的同学。 前置技术包括但不仅限于: 基础知识:HTML/CSS、
2022-08-03
  目录