背景: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 清空即可。