背景:gitlab服务迁移至vpc下,linux服务器ssh端口改为9876,导致 git clone 提示无法连接;

PS:如果https由SLB、ELB转发需要在上面添加22转发9876的规则

两种解决办法:

1、通过ssh 指定端口号clone代码

git clone ssh://git@git.jinl.com:9876/koll/diyService.git

2、将服务器22端口通过防火墙代理至9876端口,代理之后就不需要指定端口号了

iptables -L -t nat # 查看防火墙规则

iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-ports 9876

##执行上述命令后再次执行 git clone 即可

git clone git@jinl.com/koll/diyService.git

至此就已经解决了

防止机器重启规则丢失,将规则持久化

service iptables save # 将iptables规则持久化

/etc/sysconfig/iptables # 持久化目录位置


如果本地已经 clone 过项目,再次克隆会报该错误,将 ~/.ssh/known_hosts 清空即可。

git clone 非22端口,无需指定端口号clone_linux服务器