Windows 下 Git SSH 连接方式配置 Socks 代理

Windows 下 Git SSH 连接方式配置 Socks 代理

文章作者: upupming
文章链接: https://upupming.site/2019/05/09/git-ssh-socks-proxy/

最近从 GitHub clone 仓库速度极慢,遂查阅资料解决之。本文主要介绍 Git 使用 SSH 克隆时如何走 Socks 代理,因为使用 HTTPS 克隆的话目前基本上很容易找到资料,比如 Using a socks proxy with git for the http transport | Stackoverflow

正如那个回答里面所说,Git 已经对 HTTPS 方式的代理支持的很好了,设置 http 和 socks 代理都是支持的,但是如果你是使用 SSH 方式的话,就不得不另行配置了。

Stack Overflow 上有一个问题 SSH in git behind proxy on windows 7,提出使用 connect 进行代理。但是问题本身是针对 http 代理的,如果使用 socks 代理需要更改一下。

首先明确一点:connect.exe 已经在 Git 中预置了,无需再次下载安装。见下面的截图:
在这里插入图片描述

然后我们创建一个 config 文件:

vi ~/.ssh/config
# 当然你也可以手动在 C:\Users\Username\.ssh 下创建 config 文件

在文件中写入如下内容:

# 这里的 -a none 是 NO-AUTH 模式,参见 https://bitbucket.org/gotoh/connect/wiki/Home 中的 More detail 一节
ProxyCommand connect -S 127.0.0.1:1080 -a none %h %p

Host github.com
  User git
  Port 22
  Hostname github.com
  # 注意修改路径为你的路径
  IdentityFile "C:\Users\Doraeming\.ssh\id_rsa"
  TCPKeepAlive yes

Host ssh.github.com
  User git
  Port 443
  Hostname ssh.github.com
  # 注意修改路径为你的路径
  IdentityFile "C:\Users\Doraeming\.ssh\id_rsa"
  TCPKeepAlive yes

再来看看现在 git clone 的速度:
在这里插入图片描述
当然,如果你是用的是 Linux 和 macOS 的话可以找到 connect.exe 的等价替代,Google 即可找到很多答案,比如这一篇

### 解决 Windows 环境下 SSH 连接超时问题 对于在 Windows 系统下的 Git 客户端遇到的 SSH 连接超时问题,可以采取多种措施来改善这一状况。 #### 修改本地 SSH 配置文件 为了保持与远程服务器之间的持续连接,在本地计算机上的 `~/.ssh/config` 文件中加入特定配置项能够有效预防因长时间无操作而导致的断开现象。如果该路径不存在,则可手动创建并编辑此文件: ```bash Host * ServerAliveInterval 60 TCPKeepAlive yes ``` 上述设置意味着每分钟向服务器发送一次心跳信号以维持活动状态[^1]。 #### 使用代理转发功能 针对某些网络环境可能封锁了默认22号端口的情况,可以通过设定 HTTP 或 SOCKS 类型的 Web Proxy 来间接建立安全通道。具体做法是在相同的 `.ssh/config` 中追加如下指令: ```bash ProxyCommand nc -X connect -x webproxy.example.com:80 %h %p ``` 这里需替换实际可用的代理地址和端口号[^4]。 #### 调整防火墙或路由器规则 有时企业级网络安全策略可能会限制外部设备直接访问内部资源所必需开放的服务端口;因此建议核查所在机构现行 IT 政策,并尝试联系管理员协助调整相应出入站流量控制列表(ACL),允许来自本机 IP 的入站请求到达目标主机指定位置[^3]。 #### 更改 GitHub SSH 端口 考虑到部分 ISP 及公共 Wi-Fi 提供商会对标准 SSH 协议使用的TCP/22实施严格管控甚至屏蔽处理,故而推荐切换至备用替代方案——即利用 HTTPS URL 方式执行版本库同步任务,或是按照官方文档指示更改用于身份验证过程中的密钥交换机制从而绕过障碍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值