解决自建Git服务器端口为非22默认端口无法连接问题

Author: dehoo - Posted:2年前 - View:2413

换服务器后,Git自建服务器也跟着搬到新服务器上了,发现Git自建服务器无法连接了, 几经查找后,才知道问题发生在SSH端口改变了,不再是默认的22端口,以前SSH一进都是使用默认的22端口, 换新服务器后,想到以前SSH经常都被暴力破解,虽然未有一次被破解成功过,但是每次查询服务器SSH登录日志时,会 发现数以万次的破解日志,很是讨厌,自己又是强迫症患者,为了不想再被这些东西烦到,就把默认的22端口给改了。这就导致了 Git自建服务器无法连接的问题了。

刚开始也是不知道怎么解决,既然是更改了端口,那我就把端口直接写到远程分支链接后面,如下例,才现在还是根本无法链接,还报了错误。

远程分支链接:

# git remote -v
dev1    git@111.22.33.44:2222/git/dev_v1.git (fetch)
dev1    git@111.22.33.44:2222/git/dev_v1.git (push)

链接带端口报了如下错误:

fatal: '2222/git/dev_v1.git' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights

由此看来直接带端口连接是无法解决这个问题的。

为了赶紧解决这个问题,我又网上多搜索几篇文章对比了一下,发现网上文章都是千篇一律的相同, 没有把细节说清楚,会让我等遇到这个问题的人根据文章作了修改也无法解决实际问题。

下面我把网上的文章整理一下,根据这个步骤就成功了。

一、创建config文件

针对类Unix系统用户

直接在Git用户的~/git/.ssh的文件夹中创建一个config文件

提示:如果只在Git用户目录下加入config文件还无法连接,那就在root用户目录下也加入config文件。

针对Windows系统用户

1、下载git客户端并安装,下载地址:github.com/git-for-windows
2、安装好后,打开git-bash并运行ssh-keygen生成公钥
3、此时会在/c/Documents and Settings/Administrator中生成.ssh文件夹
4、在.ssh文件夹中创建config文件

提示:以上四步最重要是为了生成.ssh文件夹和创建config文件,后面会用到

二、给config文件写入相关配置

若是以域名访问Git自建服务器的,则添加以下配置内容(xxx是你的域名)

Host xxx
HostName xxx.com
Port 2222

若是以IP访问Git自建服务器的,则添加如下配置内容(IP是你远程服务器IP)

Host "111.22.33.44"
Port 2222

添加好后,你之前的远程仓库链接是不需要添加端口的,直接就可以连接了,看以下示例。

正确连接远程仓库: git@111.22.33.44:/git/dev_v1.git
错误连接远程仓库: git@111.22.33.44:2222/git/dev_v1.git

Tip: 因为你已经在config里已经声明了使用2222端口了,所以无需再在远程仓库链接后加端口。

至此,问题终于得到完美解决了,一举两得。(:

0 人点赞  ∙  0 人收藏  
加入收藏 点赞 我要评论
目前尚无回复