gitolite与非默认端口

Mot*_*Mot 11 ssh gitolite

要克隆由gitolite管理的存储库,通常使用以下语法

git clone gitolite@server:repository
Run Code Online (Sandbox Code Playgroud)

这告诉SSH客户端使用gitolite作为用户名连接到服务器的端口22 .当我尝试使用端口号时:

git clone gitolite@server:22:repository
Run Code Online (Sandbox Code Playgroud)

Git抱怨存储库22:存储库不可用.如果SSH服务器使用不同的端口,应该使用什么语法?

Chr*_*sen 18

"SCP风格"Git URL语法(user@server:path)不支持包含端口.要包含端口,您必须使用ssh://"Git URL".例如:

ssh://gitolite@server:2222/repository
Run Code Online (Sandbox Code Playgroud)

注意:与之相比gitolite@server:repository,这提供了一个与远程端略有不同的存储库路径(绝对/repository路径而不是相对路径repository); Gitolite接受两种类型的路径,其他系统可能会有所不同.


另一种方法是使用Host您的条目~/.ssh/config(请参阅您的ssh_config(5)联机帮助页).使用这样的条目,您可以创建一个"SSH主机昵称",其中包含服务器名称/地址,远程用户名和非默认端口号(以及您可能喜欢的任何其他SSH选项):

Host gitolite
    User     gitolite
    HostName server
    Port     2222
Run Code Online (Sandbox Code Playgroud)

然后你可以使用非常简单的Git URL gitolite:repository.


如果你必须为多人记录(和/或配置)这个,我会使用ssh://URL,因为没有涉及额外的配置.

如果这只适合您(特别是如果您最终可能从同一服务器访问多个存储库),那么使用SSH主机昵称来保存一些输入可能会很不错.