当前位置: 首页 > article >正文

解决 GitHub 22 端口被占用,改用 443 端口连接

在使用 git push 或其他 Git 操作时,如果遇到以下错误:

ssh: connect to host github.com port 22: Connection timed out 
fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.

这是由于默认的 SSH 22 端口被防火墙或网络策略限制,导致无法连接到 GitHub 的服务器。

为了避免这一问题,可以将连接改为 SSH 的 443 端口。以下是详细的解决方法,包括 Windows 和 Linux/Mac 的操作步骤。


Linux/Mac 下操作步骤

1. 修改 SSH 配置文件

SSH 的配置文件通常位于 ~/.ssh/config,如果文件不存在,可以手动创建一个:

touch ~/.ssh/config

打开文件并添加以下内容:

Host github.com
HostName ssh.github.com  # **这是最重要的部分**
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

2. 验证 SSH 配置

配置完成后,通过以下命令测试连接是否正常:

ssh -T git@github.com

如果配置成功,应该看到类似以下输出:

Hi <your-username>! You've successfully authenticated, but GitHub does not provide shell access.

3. 配置 Git 使用新端口

为确保 Git 使用新的 443 端口,可以运行以下命令:

git config --global url."ssh://git@ssh.github.com:443".insteadOf "ssh://git@github.com"

Windows 下操作步骤

1. 找到 SSH 配置文件

在 Windows 下,SSH 配置文件通常位于用户目录的 .ssh 文件夹中(例如:C:\Users\<你的用户名>\.ssh\config)。如果文件不存在,可以手动创建一个:

  1. 打开资源管理器并导航到 C:\Users\<你的用户名>\.ssh
  2. .ssh 文件夹下,新建一个文件,命名为 config(没有扩展名)。

2. 编辑 SSH 配置文件

用记事本或其他文本编辑器打开 config 文件,添加以下内容:

Host github.com
HostName ssh.github.com  # **这是最重要的部分**
User git
Port 443
PreferredAuthentications publickey
IdentityFile C:\Users\<你的用户名>\.ssh\id_rsa

注意:

  • IdentityFile 的路径需要根据你实际存储 SSH 密钥的位置调整,通常是 id_rsaid_ed25519

3. 验证 SSH 配置

打开命令提示符或 PowerShell,运行以下命令测试连接:

ssh -T git@github.com

如果配置正确,你应该看到以下输出:

Hi <your-username>! You've successfully authenticated, but GitHub does not provide shell access.

4. 配置 Git 使用新端口

在命令提示符或 PowerShell 中运行以下命令:

git config --global url."ssh://git@ssh.github.com:443".insteadOf "ssh://git@github.com"

总结

22 端口被占用或限制 时,通过将 SSH 连接切换到 443 端口,即可解决无法访问 GitHub 的问题。这种方法适用于任何操作系统,尤其是在防火墙限制较严的网络环境中。

希望这篇文章能帮助到你,避免因为端口问题中断工作流!🎉


📌 开发者必备工具: 在 Tool.tushuoit.com 发现免费在线工具集!推荐 App Store 截图生成器、应用图标生成器 和 Chrome插件-强制开启复制-护眼模式-网页乱码设置编码,让您的开发和运营工作更轻松高效。


http://www.kler.cn/a/430570.html

相关文章:

  • 音视频入门基础:MPEG2-TS专题(22)——FFmpeg源码中,获取TS流的音频信息的实现
  • WPF+MVVM案例实战与特效(四十七)-实现一个路径绘图的自定义按钮控件
  • AI无人直播详解
  • [代码随想录23回溯]回溯的组合问题+分割子串
  • 论文阅读 - 《Large Language Models Are Zero-Shot Time Series Forecasters》
  • IBatis和MyBatis在细节上的不同有哪些
  • 优化移动端H5:常见问题与解决方案
  • easyExcel实现表头批注
  • Plugin [id: ‘flutter‘] was not found in any of the following sources解决方法
  • FPGA 16 ,Verilog中的位宽:深入理解与应用
  • CVE-2021-25646:Apache Druid远程命令执行漏洞复现
  • Oracle RAC开启和关闭日志归档Log Archive
  • Docker实践和应用详解
  • DApp开发中的测试与调试方法详解
  • 「Mac畅玩鸿蒙与硬件43」UI互动应用篇20 - 闪烁按钮效果
  • MySQL 数据库底层原理解析
  • 【Vulkan入门】08-CreateRenderPass
  • 第四学期-智能数据分析-期末复习题
  • mysql高级篇 |尚硅谷 | 第1章_Linux下MySQL的安装与使用
  • nacos服务注册流程
  • docker-基础
  • 连锁美业门店管理系统【数据分析】功能能为门店经营带来什么帮助?
  • Excel 合并工具 将文件复制到目标工作表中与操作日志记录
  • C# 异常处理全解析:让程序告别崩溃噩梦
  • 在多个分布式机器间设置和使用 NFS(Network File System)共享目录的步骤如下:
  • 家校通小程序实战教程06口令验证