git clone需要ssh://协议,但也许不应该这样吗?

8
我的同事有一个远程的git仓库,我想要克隆它,他提供了一个url:git@his.server.com:443/repo.git。在这种情况下,ssh监听在端口443上。
我尝试使用git clone git@his.server.com:443/repo.git来克隆,但操作超时了。我原本认为git默认使用ssh协议,不确定为什么这样不起作用。
如果我明确在url中指定ssh,如git clone ssh://git@his.server.com:443/repo.git,那么它就像正常一样工作。
这是预期的git行为吗?为什么第一个url不起作用,但第二个url可以?
1个回答

10

是的,"默认"克隆语法类似于scp。scp URL看起来像"user@host:path"。请注意冒号;如果您使用git@his.server.com:443/repo.git,Git会认为您正在尝试从git@his.server.com克隆路径443/repo.git。如果您需要指定端口,则必须使用ssh样式的语法(就像您最终所做的那样)。


2
或者使用.ssh/config指定端口。 - Jakub Narębski
你的意思是每个客户端都必须编辑自己的~/.ssh/config文件吗?我们不能在服务器端处理这个问题吗? - Édouard Lopez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接