私有Git仓库存储建站脚本与中转配置完全指南

私有Git仓库存储建站脚本与中转配置,本质是在自己的服务器上搭建一个只能由你控制的Git服务,然后将网站部署脚本、配置文件等敏感代码提交到这个仓库,再通过SSH隧道或代理服务器(中转)实现从本地开发机或内网机器拉取更新。
这样做的好处是脚本不经过第三方平台,保密性强,且避免因公有仓库服务商故障导致的部署中断。
以下适合使用云服务器存放Git仓库,再通过SSH跳板机或反向代理穿透内网的场景。

什么时候需要私有仓库和中转配置

当你需要在多台服务器(包括无公网IP的内网机器)上统一管理建站脚本,或者不想让脚本出现在GitHub等公共平台时,私有仓库是最直接的选择。
而中转配置主要解决网络可达性问题:比如你的Git仓库在阿里云,而目标服务器在腾讯云内网且只能通过跳板机连接,就需要配置SSH代理访问Git仓库。

前置准备

  • 一台公网服务器(用作Git仓库),系统推荐Ubuntu 20.04+/CentOS 7+。
  • 本地电脑或中转服务器上安装Git(sudo apt install gityum install git)。
  • 需要中转的服务器上配置好SSH密钥并允许通过跳板机连接。
  • 关闭服务端防火墙或放行对应端口(默认SSH 22,如使用Gitea则3000端口)。

操作步骤:搭建私有Git仓库并配置中转

1. 在公网服务器上创建裸仓库

裸仓库没有工作区,只保存版本历史,专门用来push/pull。
登录服务器:

mkdir -p /data/git-repos && cd /data/git-repos
git init --bare web-scripts.git

这一步会创建一个空仓库,路径记好。

2. 配置SSH密钥认证(无密码登录)

为了安全,推荐使用密钥登录。
首先在本地或中转服务器生成密钥(如果已有则跳过):

ssh-keygen -t rsa -b 4096 -C "deploy"

将公钥(~/.ssh/id_rsa.pub)追加到Git仓库服务器的 ~/.ssh/authorized_keys 文件:

cat id_rsa.pub >> ~/.ssh/authorized_keys

并确保 .ssh 权限为700,authorized_keys 权限为600。

3. 推送建站脚本到私有仓库

在本地的网站项目文件夹内初始化Git并添加远程地址(注意替换为服务器的公网IP):

git init
git add .
git commit -m "初始提交"
git remote add origin ssh://root@你的服务器IP:/data/git-repos/web-scripts.git
git push origin master

推送成功后,你的建站脚本就安全存储在了私有仓库中。

4. 配置SSH中转访问

场景:你需要从内网服务器拉取脚本,该服务器只能通过跳板机连接公网。
在目标服务器上编辑SSH配置文件 ~/.ssh/config

Host jump
    HostName 跳板机IP
    User root
    IdentityFile ~/.ssh/id_rsa

Host git-server
    HostName 你的服务器IP
    User root
    ProxyJump jump

然后直接克隆:

git clone git-server:/data/git-repos/web-scripts.git

SSH会自动通过跳板机中转连接Git仓库。
如果使用Gitea等Web管理工具,中转配置相同,端口需改为3000(在config里加Port)。

5. (可选)配置自动部署

私有仓库搭配Webhook可实现push后自动拉取脚本并重启服务。
在服务器上写一个简单的脚本 /usr/local/bin/deploy.sh

#!/bin/bash
cd /var/www/html
git pull origin master
exit 0

然后通过Gitea的Webhook或系统定时任务触发执行。

避坑指南

  • SSH权限拒绝:检查authorized_keys是否写错了换行或权限。可用 ssh -v root@服务器 调试。
  • 中转连接超时:跳板机的SSH配置中加上 ServerAliveInterval 60 防止断开。
  • 仓库权限:建议为Git仓库单独创建一个系统用户(例如git),避免直接用root。
  • HTTPS中转:如果公司防火墙只允许HTTPS,可以配置Nginx反向代理Git仓库的HTTP端口(如Gitea),但SSH更稳定。

效果验证

在任何一台配置好中转的机器上执行 git pull,如果能正常拉取最新脚本,说明私有仓库和中转配置全部成功。
进一步验证:在本地修改一个文件并push,再在目标服务器pull,看到变化即正常。

常见问题

Q1:为什么我用git clone时报Permission denied (publickey)
A:公钥未正确添加或权限不对。重新检查服务器上authorized_keys文件,确保包含你的公钥且~/.ssh目录权限为700。

Q2:内网服务器没有公网IP,还能用私有Git仓库吗?
A:可以。通过SSH隧道或搭建frp内网穿透,将仓库端口映射到公网,中转服务器只需安装frp客户端即可。

Q3:中转配置中ProxyJump命令找不到?
A:较早的OpenSSH版本不支持ProxyJump,可以改用-J参数或使用nc命令实现:ProxyCommand ssh jump nc %h %p

Q4:私有仓库的脚本如何自动部署到多台服务器?
A:每台目标服务器配置相同的中转SSH并执行git pull,或者使用Ansible等工具批量拉取。另外Gitea支持Webhook触发的post-receive钩子。

分享到:
上一篇
Jenkins CI/CD自动化发布跨境网站更新新手实操教程
下一篇
KVM虚拟化住宅主机搭建多套测试站点完整教程
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意