解决WINDOWS与WSL2中GitHub克隆仓库连接443端口失败

目录

问题描述

Windows解决方案

WSL2解决方案

问题描述

      作者在使用wsl2下的Ubuntu开发,克隆仓库时遇到报错,"Failed to connect to github.com port 443 after 21068 ms: Could not connect to server",尝试过检查网络连接,关闭防火墙,更换DNS,更改hosts文件,使用vpn等多种手段,但都没成功。

       最终决定使用SSH协议替代HTTPS,一次成功。

Windows解决方案

首先你需要一个github账号。记住你的账号邮箱。在Powershell输入命令

ssh-keygen -t ed25519 -C "你的邮箱地址"

这是一个用于生成SSH私钥与公钥——密钥对的命令。 文件路径~/ .ssh。在Powershell输入命令  

cd ~/.ssh
ls

 我们需要公钥,查看公钥内容。(带pub的是公钥)

cat id_ed25519.pub  

输出内容类似ssh-ed25519 AAAAB3NzaC1yc2E......复制这段内容,粘贴到Github的SSH Keys 设置中。

测试SSH连接

ssh -T git@github.com

若成功便会显示 Hi XXX! You've successfully authenticated... 

但是如果出现如下错误,则是22端口被阻止。需要修改或创建 ~/ .ssh/config 文件

ssh: connect to host github.com port 22: Connection refused
#打开或创建config文件
notepad $HOME\.ssh\config  

#添加如下内容
Host github.com
  Hostname ssh.github.com
  Port 443
  User git

注意保存时文件名必须是config而不是config.txt 等!

成功后,将git clone 命令从 HTTPS 改为 SSH 协议即可

#原命令
git clone https://github.com/xxx/xxx.git

#更改后命令
git clone git@github.com:xxx/xxx.git

WSL2解决方案

       由于wsl2可以直接访问Windows文件系统,所以可以直接复用已有密钥。Linux 系统对 SSH 配置文件的权限和所有权有严格限制,需要额外设置文件权限。

# 在 WSL2 的 Ubuntu 终端中操作
# 创建 .ssh 目录(如果不存在)
mkdir -p ~/.ssh


# 将 Windows 的 SSH 密钥复制到 WSL2
# 将 name 替换为你的 Windows 用户名
cp  /mnt/c/Users/name/.ssh/id_ed25519 ~/.ssh/id_ed25519
cp  /mnt/c/Users/name/.ssh/id_ed25519.pub ~/.ssh/id_ed25519.pub
cp  /mnt/c/Users/name/.ssh/config ~/.ssh/config

# 设置文件权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 600 ~/.ssh/config

#测试是否连通
ssh -T git@github.com

成功显示与Windows中的相同

### 如何在 Windows 上使用 Docker 运行 GitHub 项目 要在 Windows 上通过 Docker 成功运行来自 GitHub 的项目,可以按照以下方法操作: #### 准备环境 为了能够在 Windows 上运行 Docker 容器,首先需要确保已正确安装所需的组件。这包括但不限于 Docker Desktop、Git 工具以及 VirtualBox 或 WSL2 支持的环境。 - **Docker Desktop**: Docker Desktop 是官方推荐的解决方案,支持 Windows 和 macOS 系统。它提供了完整的容器化体验,并集成了 Kubernetes 功能[^4]。 - **WSL2 集成**: 如果您的操作系统版本允许,建议启用 Windows Subsystem for Linux (WSL2),因为它是更高效的底层架构,能够显著提升性能。 完成上述准备工作之后,验证 Docker 是否成功安装并可用: ```bash docker run hello-world ``` 如果一切配置无误,则应该看到一条消息表明 Hello World 容器已经成功执行[^2]。 #### 获取 GitHub 项目源码 通常情况下,GitHub 项目会提供详细的文档说明如何部署或者构建应用。以下是通用流程: 1. 使用 `git clone` 命令下载目标仓库至本地目录: ```bash git clone https://github.com/<用户名>/<项目名称>.git ``` 2. 切换到克隆下来的文件夹路径下查看是否有现成的 Dockerfile 文件存在。如果有此文件的话,意味着该项目可能已经被设计为可以直接借助 Docker 来搭建服务环境[^3]。 #### 构建运行容器 一旦确认存在有效的 Dockerfile 后,便可以在终端窗口中输入如下指令来进行镜像制作过程: ```bash docker build -t <自定义标签>:<版本号> . ``` 这里需要注意的是最后那个点字符代表当前所在的工作空间位置作为上下文传递给 builder 引擎处理。 当整个编译完成后即可尝试启动新创建出来的实例: ```bash docker run --name=<指定名字> -d -p 外部端口:内部监听端口 <刚刚设置好的tag> ``` 例如假设应用程序默认绑定到了8080端口中去对外暴露web界面访问权限,那么我们可以映射主机上的任意未占用数值比如9090对应起来方便后续浏览器打开页面预览效果。 另外某些复杂场景还涉及到额外参数调整需求,具体可参照官方手册或者其他社区贡献者分享的经验贴学习更多高级技巧。 --- ### 注意事项 尽管大多数开源软件都可以轻松移植到不同平台之上实现跨设备兼容性目的,但仍需留意个别依赖项是否存在特定约束条件限制其正常使用范围。特别是针对那些高度定制化的框架结构而言更是如此。因此务必仔细阅读作者给出的相关指导材料后再做决定是否继续推进下去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值