gitlab的git协议端口非默认端口访问

gitlab的git协议端口非默认端口访问

参考地址:

  git远程添加与其他SSH端口-堆栈溢出 (stackoverflow.com)

一、问题描述

  近期公司由于业务需要将版本控制工具从 svn 更改为 gitlab ,再大家沉浸在 快乐的写代码中 时,发现 gitlab的 git 协议都是莫名其妙的 Connection timed out

  分析了一下原因,可能是因为:公司的网络使用的是内网穿透 tunnel,将所有的代码都控制在本地,这样从一定程度上可以提高代码的安全性;但是由于公司只有一个公网的 ip, git 协议默认走的还是 ssh的 22 端口,这样一样不合就导致了端口冲突;

  经过考虑,最终建议大佬,更改一下gitlab 的 git 协议的默认端口,从 22 修改为 10022, perfect!!!

  可问题来了,改完之后我们怎么 clone 代码呢???

  本片文章就是问了解决这个问题

二、解决方案

2.1、创建ssh的config文件

  最好是通过Git Bash命令来创建配置文件:

# 编辑当前用户的ssh config 文件
$ vim ~/.ssh/config

# 将以下内容写入到config文件中
Host gitlab.tunnel.it100.com
    Hostname gitlab.tunnel.it100.com
    User lijin
    Port 10022
    IdentityFile ~/.ssh/gitlab
  • Host后面的 gdgxkj 或者 gitee.com:别名,后面会使用这个别名做克隆和更新
  • Hostname后面的gitlab.tunnel.it100.com 或者gitee.com :表示git服务器的域名或者ip等
  • User后面的lijin :表示当前git服务器使用的用户名
  • Port 后面的22:表示git服务器的端口,(这个是解决问题的关键)
  • IdentityFile : 表示使用密钥的文件(公钥和私钥是成对存在的,公钥的名称是在私钥的文件名称加上.pub)

2.2、在仓库地址上添加端口信息

  正常情况下的仓库地址为:git@gitlab.tunnel.it100.com:zhengzhou-hnsrmdbdhcwwyhbgt-lfybascgzpt/hn-system.git

  添加端口号之后的仓库地址为:[git@gitlab.tunnel.it100.com:10022]:zhengzhou-hnsrmdbdhcwwyhbgt-lfybascgzpt/hn-system.git

  格式为:[git@host:port]:path/to/repo.git

注意: 这种方案要求了本地 git的版本,低版本()的git则会提示如下报错信息:

$ git clone [git@gitlab.tunnel.it100.com:10022]:zhengzhou-hnsrmdbdhcwwyhbgt-lfybascgzpt/hn-system.git
Cloning into 'hn-system'...
ssh: Could not resolve hostname gitlab.tunnel.it100.com:10022: Name or service not known
fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.

  经过本地的简单测试 Git for Windows 2.22.0 版本会出现异常,Git for Windows 2.29.2 版本则能正常执行。

  如果本地git版本过低,可以使用命令来升级git版本。

$ git update-git-for-windows

2.3、使用系统变量

  如果端口更改只是暂时的,您可以告诉 git 使用不同的 SSH 命令,而不是更改存储库的远程 URL,则可以使用如下方式:

  linux系统下可以可以如下执行:

# 添加变量
$ export GIT_SSH_COMMAND='ssh -p 10022'

$ git clone git@gitlab.tunnel.it100.com:zhengzhou-hnsrmdbdhcwwyhbgt-lfybascgzpt/hn-system.git

  windows系统下可以设置系统变量,然后就可以愉快的执行啦

设置系统的环境变量

$ git clone git@gitlab.tunnel.gdgxkj.com:zhengzhou-hnsrmdbdhcwwyhbgt-lfybascgzpt/hn-system.git

  注意: 这种方案要求了本地 git的版本,低版本的git则会报错,同时windows 下设置的系统变量不能为临时变量,否则将不会生效

2.3.1、windows10 使用cmd设置环境变量
  • 1,打开命令行shift+右键选择在此处打开命令行窗口

  • 2,临时环境变量,只有当前命令行有效,重启命令行失效。

    set path=C:/MinGW/bin
    
  • 3,永久环境变量,设置后重启命令行生效。

    setx path C:/MinGW/bin
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值