有个ssh+git的配置问题请教一下各位大佬,我在云服务器上搭建了git服务器,前几天把云服务的ssh端口改成非22端口了,现在ssh连接服务器都是通过本地中配置好的简写命令直接ssh连接上去的,服务器也关闭了22端口,现在ssh登录没有问题。
现在的问题是,在本地执行git pull
的时候git还是使用了22端口,导致无法拉取代码,我想知道git怎么针对某个仓库单独配置端口,而不改变全局的git配置,毕竟还有其他项目在github等其他远程仓库?
# ~/.ssh/config
Host hwy
HostName xxx.xxx.xxx.xx
User ABC
Port 12345 # 服务器上的sshd_config端口与这里一致
IdentityFile ~/.ssh/id_rsa
拉取代码报错如下:
➜ image-upload-qiniu git:(master) ✗ git pull gitlab master
ssh: connect to host gitlab.mhynet.cn port 22: Connection refused
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
感谢楼上@然后去远足 的提醒,我去查了一下git官方文档,找到了问题的原因,原来git配置中的url写法有好几种,使用ssh协议格式最常用的写法
git@host:/path
是最常用的一种,但是这种格式不支持修改默认端口,除了这种格式之外,支持ssh的还有几种格式,具体内容可以查阅git官方文档https://git-scm.com/docs/git-...
如果要改端口的话,为了避免全局污染,最好不要修改
~/.ssh/config
文件,仅需要修复项目的.git/config
中的url为ssh://\[user@\]host.xz\[:port\]/path/to/repo.git/
格式,与最常用的格式相比,仅仅是在前面加上了ssh://
前缀,然后在域名后面加上端口而已。