解决自建Git服务器端口为非22默认端口无法连接问题
换服务器后,Git自建服务器也跟着搬到新服务器上了,发现Git自建服务器无法连接了, 几经查找后,才知道问题发生在SSH端口改变了,不再是默认的22端口,以前SSH一进都是使用默认的22端口, 换新服务器后,想到以前SSH经常都被暴力破解,虽然未有一次被破解成功过,但是每次查询服务器SSH登录日志时,会 发现数以万次的破解日志,很是讨厌,自己又是强迫症患者,为了不想再被这些东西烦到,就把默认的22端口给改了。这就导致了 Git自建服务器无法连接的问题了。
刚开始也是不知道怎么解决,既然是更改了端口,那我就把端口直接写到远程分支链接后面,如下例,才现在还是根本无法链接,还报了错误。
远程分支链接:
# git remote -v
dev1 git@123.33.44.55:8877/git/dev_v1.git (fetch)
dev1 git@123.33.44.55:8877/git/dev_v1.git (push)
链接带端口报了如下错误:
fatal: '8877/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
由此看来直接带端口连接是无法解决这个问题的。
为了赶紧解决这个问题,我又网上多搜索几篇文章对比了一下,发现网上文章都是千篇一律的相同, 没有把细节说清楚,会让我等遇到这个问题的人根据文章作了修改也无法解决实际问题。
下面我把网上的文章整理一下,根据这个步骤就成功了。
1、在Git用户的/home/git/.ssh
的目录新建一个config
文件
提示:如果只在Git用户目录下加入config
文件还无法连接,那就在root用户目录下也加入config
文件。
2、在config
文件下写入以下内容
特别注意:
2.1、如果你以域名访问Git自建服务器的,则添加以下内容(xxx是你的域名)
Host xxx
HostName xxx.com
Port 8877
2.2、如是你以IP访问Git自建服务器的,则添加如下内容(注意IP是你远程仓库IP)
Host "123.33.44.55"
Port 8877
3、添加好后,你之前的远程仓库链接是不需要添加端口的,直接就可以连接了,看以下示例。
正确链接:git@123.33.44.55:/git/dev_v1.git
错误链接:git@123.33.44.55:8877/git/dev_v1.git
Tip: 因为你已经在config
里已经声明了使用8877端口了,所以无需再在远程仓库链接后加端口。
至此,问题终于得到完美解决了,一举两得。(: