跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
|注册
博客列表

目录

  1. 核心思路
  2. 万能脚本:remote-get.sh
  3. 本脚本用于高速下载域外资源或者克隆 git 项目
  4. ====================== 只需修改这里 ======================
  5. ==========================================================
  6. 参数检查
  7. ====================== Git 仓库克隆 ======================
  8. ====================== 文件下载 ======================
  9. 3 步上手,一次配置终身使用
  10. 1. 赋予执行权限
  11. 2. 修改服务器信息(只改一次)
  12. 3. 直接使用
  13. ① 克隆 GitHub 仓库
  14. ② 下载海外文件/模型/压缩包
  15. 脚本亮点
  16. 1. 自动识别 URL,一个脚本通吃
  17. 2. Git 克隆稳定不报错
  18. 3. 速度拉满,不占远程磁盘
  19. 4. 极度干净,运维级规范
  20. 5. 兼容性极强
  21. 适用场景
  22. 小提示
  23. 总结
Shell / BashAI

基于 SSH 的远程 Git 仓库克隆与文件下载脚本

针对国内开发者常遇到的 GitHub 仓库克隆缓慢及海外资源下载不稳定的问题,本文提供了一个基于 SSH 远程执行的 Bash 脚本方案。该脚本利用远程服务器作为中转,在服务器端完成 Git 克隆或文件下载,并通过管道将数据流式传输至本地。支持自动识别 URL 类型(Git 仓库或普通文件),具备浅克隆、临时文件清理及跨平台兼容性(macOS/Linux/WSL)。无需安装第三方工具,仅需配置一次服务器信息即可长期使用,有效解决网络限制导致的下载瓶颈。

PhpPioneer发布于 2026/3/290 浏览
基于 SSH 的远程 Git 仓库克隆与文件下载脚本

核心思路

脚本利用的是 Linux/Unix 下最常规的能力:。

SSH 远程执行 + 管道传输

简单说就是三件事:

  1. 让远程服务器访问 GitHub 或海外资源(网络环境更好、速度更稳)
  2. 在服务器上完成 git clone 或 curl 下载
  3. 通过 SSH 安全管道,把文件/打包后的仓库直接传回本地
  • Git 仓库:远程静默克隆 → 打包 → 本地接收解压
  • 普通文件:远程 curl → 直接管道输出到本地文件

本地只需要能 SSH 连上服务器即可,不需要任何特殊网络配置。


万能脚本:remote-get.sh

直接复制保存为 remote-get.sh,修改几行配置就能用。

#!/usr/bin/env bash
# 本脚本用于高速下载域外资源或者克隆 git 项目
set -euo pipefail

# ====================== 只需修改这里 ======================
REMOTE_USER="root"      # 你的远程服务器用户名
REMOTE_HOST="192.168.2.8" # 你的远程服务器 IP 地址
SSH_PORT="22"           # 服务器的 SSH 端口
# ==========================================================

show_usage(){
cat<<EOF
用法:$0 <URL> [本地保存名称]
功能:
 • URL 以 .git 结尾 → 远程克隆 GitHub 仓库
 • 其他 URL → 远程下载文件并传到本地
示例:
 克隆仓库:$0 https://github.com/tekintian/transformers.git
 下载文件:$0 https://example.com/ai-model.tar.gz
EOF
exit 1
}

# 参数检查
[ $# -lt 1 ] && show_usage

URL="$1"
TARGET="${2:-}"
REMOTE_TMP_DIR="/tmp/remote-get-$(date +%s)-$RANDOM"

# ====================== Git 仓库克隆 ======================
if [[ "$URL" =~ \.git$ ]]; then
    echo -e "\033[32m==> 识别为 Git 仓库,使用克隆模式\033[0m"
    TARGET="${TARGET:-$(basename "$URL" .git)}"
    TAR_FILE="${TARGET}.tar.gz"

    # 检查本地目录是否已存在
    [-d "$TARGET"] && echo "错误:目录 $TARGET 已存在" && exit 1

    # 1. 远程克隆
    ssh -p "$SSH_PORT" "${REMOTE_USER}@${REMOTE_HOST}" "set -e; rm -rf '$REMOTE_TMP_DIR'; mkdir -p '$REMOTE_TMP_DIR'; git clone --recursive --depth 1 --quiet '$URL' '$REMOTE_TMP_DIR'/repo"

    # 2. 远程打包并传到本地
    ssh -p "$SSH_PORT" "${REMOTE_USER}@${REMOTE_HOST}" "tar -czf - -C '$REMOTE_TMP_DIR/repo' . 2>/dev/null" > "$TAR_FILE"

    # 3. 本地解压
    mkdir -p "$TARGET"
    tar xzf "$TAR_FILE" -C "$TARGET"
    rm -f "$TAR_FILE"

    # 4. 清理远程临时文件
    ssh -p "$SSH_PORT" "${REMOTE_USER}@${REMOTE_HOST}" "rm -rf '$REMOTE_TMP_DIR'" >/dev/null 2>&1

# ====================== 文件下载 ======================
else
    echo -e "\033[32m==> 识别为普通文件,使用下载模式\033[0m"
    TARGET="${TARGET:-$(basename "$URL")}"

    # 检查本地文件是否已存在
    [-f "$TARGET"] && echo "错误:文件 $TARGET 已存在" && exit 1

    # 远程下载并直接传到本地
    ssh -p "$SSH_PORT" "${REMOTE_USER}@${REMOTE_HOST}" "curl -L --progress-bar --connect-timeout 10 --max-time 7200 '$URL' 2>/dev/null" > "$TARGET"

    echo -e "\n\033[32m✅ 完成!已保存到:$TARGET\033[0m"
fi

3 步上手,一次配置终身使用

1. 赋予执行权限
chmod +x remote-get.sh
2. 修改服务器信息(只改一次)

把脚本顶部这三行换成你自己的服务器信息:

REMOTE_USER="root"
REMOTE_HOST="192.168.2.8"
SSH_PORT="22"
3. 直接使用
① 克隆 GitHub 仓库
./remote-get.sh https://github.com/tekintian/transformers.git
② 下载海外文件/模型/压缩包
./remote-get.sh https://example.com/llama-7b.tar.gz

脚本亮点

1. 自动识别 URL,一个脚本通吃
  • 以 .git 结尾 → 自动走 Git 克隆逻辑
  • 其他地址 → 自动走文件下载逻辑 不用记两个命令,不用改脚本,极度省心。
2. Git 克隆稳定不报错
  • 远程静默克隆,不会把日志打进压缩包
  • 纯净 tar.gz 传输,本地解压 100% 正常
  • 不会出现 tar format unrecognized 这类诡异问题
3. 速度拉满,不占远程磁盘
  • 服务器带宽有多快,本地接收就有多快
  • 仓库/文件不落地存储在服务器上,直接流式传回本地
  • 下载几 GB、几十 GB 都稳定不掉线
4. 极度干净,运维级规范
  • 远程临时目录用完即删
  • 本地失败自动删除损坏文件/空目录
  • 不写系统目录、不修改配置、无残留
5. 兼容性极强
  • 本地:macOS / Linux / WSL 都能跑
  • 远程:任何 Linux 服务器(CentOS、Ubuntu、Debian 通用)

适用场景

  • 本地克隆 GitHub 慢、经常失败的开发者
  • 需要获取海外开源数据集、AI 模型、源码包的同学
  • 不想装各种客户端、追求极简稳定方案的人
  • 有闲置海外服务器,想最大化利用的运维/开发者
  • 团队内部快速同步海外开源资源

小提示

  1. 远程服务器建议安装 git 和 curl(大部分系统默认已装)
  2. Git 克隆使用 --depth 1 浅克隆,速度更快;需要完整提交历史去掉即可
  3. Git 克隆使用 --recursive 可以克隆仓库里面的子仓库
  4. 脚本只做远程执行 + 安全传输,属于常规运维操作,稳定、合规、无风险

总结

对于国内开发者来说,GitHub 慢、海外资源难下载是长期痛点。本文的脚本不依赖任何第三方工具,不搞复杂配置,只用 SSH + 原生 Linux 命令,就把问题彻底解决。

只要你有一台远程服务器: ✅ GitHub 仓库高速克隆 ✅ 海外文件稳定下载 ✅ 一次配置,终身使用 ✅ 干净、轻量、可靠

极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog

更多推荐文章

查看全部
  • Gephi 网络布局算法详解
  • Python IDE 环境构建与项目配置指南
  • Python pip 包管理工具全面使用教程
  • Processing.py Python 创意编程入门指南
  • Python 3.12 logging 模块 LogRecord 详解
  • Python 调用第三方 API 识别携程中文验证码并自动登录
  • C++ 文本处理核心利器:string 类详解
  • ROS 基础教程:使用 C++ 编写节点
  • 微信支付商家转账常见问题及 Java 调用示例
  • Windows+Ubuntu 双系统安装及驱动配置指南
  • Ubuntu 22.04 系统下 Tesla V100 双卡 NVIDIA 驱动与 CUDA 12.8 安装
  • GitHub 日榜热门项目精选 (2026-03-20)
  • 主流数据库自增 ID 重置指南:MySQL PostgreSQL SQL Server SQLite
  • MySQL 监控实战:mysql_exporter 部署与远程监控
  • Sobel 边缘检测算法详解
  • C/C++ 算法:常见日期问题解析
  • 摩尔投票法详解
  • FinPlot: Python 金融数据可视化工具入门
  • TypeScript 首超 Python 成 GitHub 最活跃语言:2025 开发趋势
  • Python 简单 AI 应用开发指南

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown 转 HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online

  • HTML 转 Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online