在某些网络环境下,直接通过 SSH 访问 GitHub 会受阻,比如 22 端口被屏蔽。这篇文章总结了我在 Windows + WSL 环境下,利用 Clash Verge 的 TUN 模式 配置 SSH 代理的经验。


背景

Windows 上安装了 Clash Verge 并启用 TUN 模式,Socks5 代理端口为 7897。Windows 系统下 Git 通过以下 SSH 配置可以成功连接 GitHub:

Host github.com
HostName ssh.github.com
Port 443
User git
ProxyCommand YOUR_GIT\mingw64\bin\connect.exe -S 127.0.0.1:7897 %h %p

我们的目标是在 WSL 下也能顺利使用 ssh -T git@github.com。然而我在 WSL 下直接设置环境变量:export ALL_PROXY="socks5://127.0.0.1:7897"

然后执行 ssh -T git@github.com,会得到:Connection to github.com 22 port [tcp/ssh] succeeded!然后卡住。

原因分析

默认 SSH 连接使用 22 端口,很多网络环境屏蔽了 22 端口。

解决方案

  1. 将 Windows 的 connect.exe 添加到 WSL 路径在 WSL 的终端中,添加 connect.exe 的路径:export PATH=$PATH:/mnt/YOUR_GIT/mingw64/bin
  2. 在 WSL 中修改 SSH 配置编辑 ~/.ssh/config,添加 GitHub 的代理配置:
Host github.com
HostName ssh.github.com
Port 443
User git
ProxyCommand /mnt/YOUR_GIT/mingw64/bin/connect.exe -S 127.0.0.1:7897 %h %p

注意事项

  1. /mnt/c/... 是 WSL 访问 Windows 文件路径的方式。
  2. Port 443 避免了网络屏蔽 22 端口的问题。ProxyCommand 指定了使用 Socks5 代理。
  3. 测试连接执行以下命令测试连接:ssh -T git@github.com

    如果配置正确,你会看到认证成功的提示,表明连接已成功通过代理。

总结经验

  1. 端口选择很重要:22 端口可能被屏蔽,使用 443 端口更稳妥。
  2. WSL 可以直接调用 Windows 可执行文件,路径使用 /mnt/c/...。配置一次后,无需每次导出环境变量,~/.ssh/config 会自动生效。

通过以上步骤,WSL 下的 SSH 可以顺利通过 Clash Verge TUN 代理 访问 GitHub,解决了网络限制问题。希望这个经验分享能对同样受限网络环境的开发者有所帮助。

下图是配置成功后 WSL 下的下载速度

WSL 下使用 SSH 访问 GitHub 受阻的配置经验的更多相关文章

  1. windows下配置ssh访问github

    一.说明 一直使用HTTPS的方式访问github的代码,用的时间长了,发现这是效率很低的一种开发行为,因为每次git push的时候都要输入username和password.今天就介绍如何在win ...

  2. ITerm2下使用ssh访问Linux

    通常情况下,iTerm2访问远程Linux使用ssh,与Termial基本一样,方法如下: ssh <用户名>@<ip> 然后输入访问的密码即可.当然还有的时候需要指定访问端口 ...

  3. Linux下的ssh、scala、spark配置

    注:笔记旨在记录,配置方式每个人多少有点不同,但大同小异,以下是个人爱好的配置方式. 目录 一.配置jdk 二.配置ssh 三.配置hadoop 四.配置scala 五.配置spark 平台:win1 ...

  4. Windows10 下 github ssh 访问出现 Permission denied(publickey)错误的解决方法

    Windows10 下 github ssh 访问出现 Permission denied(publickey)错误的解决方法. 错误信息: git clone git@github.com:ediw ...

  5. window下配置SSH连接GitHub、GitHub配置ssh key(转)

    转自:http://jingyan.baidu.com/article/a65957f4e91ccf24e77f9b11.html 此经验分两部分: 第一部分介绍:在windows下通过msysGit ...

  6. window下配置SSH连接GitHub、GitHub配置ssh key

    window下配置SSH连接GitHub.GitHub配置ssh key   此经验分两部分: 第一部分介绍:在windows下通过msysGit(Git for windows.Git Bash)配 ...

  7. windows下使用火狐浏览器插件AutoProxy+MyEnTunnel+SSH访问海外站点(转)

    windows下使用火狐浏览器插件AutoProxy+MyEnTunnel+SSH访问海外站点   平时需要查阅一些技术资料,光走VPN太浪费流量,所以这儿教大家一种使用火狐浏览器的插件 AutoPr ...

  8. ssh-keygen+ssh-copy-id 在linux下实现ssh无密码登录访问(转)

    转自:http://blog.csdn.net/pennyliang/article/details/8556662 ssh-keygen+ssh-copy-id 在linux下实现ssh无密码登录访 ...

  9. Windows下设置 ssh key,配置GitHub ssh key

    1.新建一个目录,利用git工具打开 Git Bash Here 2.执行如下命令 ssh-keygen -t rsa -C "email@email.com" 其中邮箱为GitH ...

  10. 关于Mac下的SSH客户端iterm2等配置

    linux后台开发的同学们晓得,在windows下有xshell\securecrt这样优秀的ssh客户端软件.mac下查找了下,有securecrt mac版,网上也有破解的,试用了一段时间,一个问 ...

随机推荐

  1. 前端开发系列039-基础篇之Video基础

    本文简单介绍HTML5中的video标签,包括video元素的简单介绍.基本使用以及常用事件和属性. 一.标签介绍 HTML5 规定了一种通过 Video 元素来包含视频的标准方法. Video标签用 ...

  2. sox 改变频率

    http://blog.csdn.net/chenxieyy/article/details/51506766 1,将2.wav文件的采样率修改为16000HZ 命令如下:sox   2.wav   ...

  3. leetcode 483 最小好二进制

    简介 对于困难的题目, 一般好像是不会一下子得出答案, 需要进行一定的数学分析, 然后才可以得出答案. 官房给出了数学的证明, 但是一般人数学早丢了, 还是二分法有用. 参考大神的, 思路简单来说就是 ...

  4. linux 网络编程 新技能

    {} 配对问题.这个在多个json文件中找到配对的{} 括号实在不容易. 使用 % 号吧少年. gg 跳到首部 GG 跳转到尾部. XXG 可以跳转到多少多少行. gcc -E 执行预处理的结果.变量 ...

  5. 生成 cone(锥体)

    简介 生成 圆锥 代码 // CreateCone.cpp: 定义控制台应用程序的入口点. // #include <iostream> #include <OpenMesh/Cor ...

  6. lingo 解基础 0 - 1 背包问题

    简介 没想到 0 - 1背包问题还可以这么解 question 假设现在有8件物品,他们的质量分别为3,4,6,7,9,10,11,12; 价值分别为 4,5,7,9,11,12,13,15; 假设总 ...

  7. Car Kit重构车机开发体验,让车载应用开发驶入快车道

    在智能座舱成为汽车行业"新四化"核心战场的今天,开发者们正面临这样的挑战:如何让手机应用快速适配车机场景?如何实现手机与车机无感流转?如何在保障驾驶安全的前提下提供沉浸式交互体验? ...

  8. idea中运行java程序报Error:(4,25) --九五小庞

    报错信息如下 在网上找了一通,终于找到了解决的方法 参考网上教程安装lomobok插件,pom文件添加依赖之后 出现  Error:(3, 14) java: 程序包lombok不存在 错误 解决方案 ...

  9. hpc超算集群的dd命令进行系统恢复

    方法:通过镜像其他节点来进行操作系统的恢复 1 把需要修复的系统盘插入到正常节点去,然后通过fdisk -l 查看磁盘的系统名是多少,如果假设为/dev/sdc 2 这个时候可以输入命令进行光盘数据的 ...

  10. GitHub上创建仓库并clone到当前开发环境

    点击头像选择your repositories->New进入如下界面: 选择自己需要的选项而后创建 clone到当前开发环境,在命令行输入:git clone 复制SSH的URL