You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SSH隧道访问远端私有服务器上部署的私有Gitlab仓库

私有Gitlab跨网访问配置方案

完全可以通过SSH隧道/跳转的方式实现外网访问内网私有Gitlab,配置完成后可以正常执行clone、push、pull等所有Git操作,无需额外安装代理工具。

前置准备

提前将两组SSH密钥存放到本地.ssh目录下:

  • 登录远端私有服务器的SSH私钥(用于隧道/跳转鉴权)
  • Gitlab专用的独立SSH私钥(用于Gitlab身份验证)

Linux/macOS下需确保私钥权限为600,执行命令:
chmod 600 ~/.ssh/私钥文件名


方案1:ProxyJump自动跳转(推荐)

适用于OpenSSH 7.3及以上版本(目前主流Windows/macOS/Linux系统默认SSH均支持),无需手动维护隧道,Git操作时自动完成跳转连接。

  1. 编辑本地SSH配置文件~/.ssh/config(Windows路径为C:\Users\你的用户名\.ssh\config),新增如下配置:
# 远端私有服务器跳转配置(如果需要单独登服务器也可以用这个别名)
Host remote-server
  HostName 远端服务器公网IP
  User 远端服务器登录用户名
  Port 远端服务器SSH端口
  IdentityFile ~/.ssh/登录远端服务器的私钥路径
  IdentitiesOnly yes

# 私有Gitlab访问配置
Host private-gitlab
  HostName XXX.XXX.XX.X # 替换为Gitlab的内网IP
  User git
  Port Gitlab的SSH端口 # 默认22,你部署的是XXXX端口就填XXXX
  IdentityFile ~/.ssh/Gitlab专用的私钥路径
  IdentitiesOnly yes
  ProxyJump remote-server
  1. 仓库操作
  • 新克隆仓库:直接执行git clone private-gitlab:REPODIR/repo_name.git即可
  • 已有存量仓库:进入仓库目录执行git remote set-url origin private-gitlab:REPODIR/repo_name.git修改远程地址即可

后续所有Git操作和内网使用体验完全一致,无需额外操作。


方案2:手动建立本地端口转发隧道

如果你的SSH版本不支持ProxyJump,可以用手动建隧道的方式实现:

  1. 执行SSH命令建立本地端口转发隧道:
    ssh -L 2222:XXX.XXX.XX.X:Gitlab的SSH端口 remote-server -N -f
    参数说明:
  • 2222 是本地未被占用的端口,可以自行修改
  • -N 表示只做转发不打开远端服务器的shell
  • -f 表示隧道后台运行
  1. 编辑本地SSH配置文件~/.ssh/config,新增Gitlab配置:
Host private-gitlab
  HostName 127.0.0.1
  Port 2222 # 和你上面指定的本地端口一致
  User git
  IdentityFile ~/.ssh/Gitlab专用的私钥路径
  IdentitiesOnly yes
  1. 仓库操作和方案1完全一致,唯一需要注意的是每次访问Gitlab前需要先运行第一步的隧道命令,如果隧道断开需要重新执行。如果需要长期保活,可以使用autossh工具管理隧道。

内容的提问来源于stack exchange,提问作者Nicholas Kunes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:15:08