我的VPS提供商建议我将SSH端口保留为他们默认分配的自定义端口号(而不是22)。问题是,虽然我知道在创建远程配置时可以提供端口号,但在进行Git克隆时似乎不能这样做。我使用gitolite,所以克隆命令看起来像:

git clone git@mydomain.example:gitolite-admin

是否有一种方法将其隐蔽为使用自定义SSH端口号?

我还应该提到我在Windows上运行Cygwin。我看到很多地方都说要将自定义端口添加到~/。ssh /配置文件:

Host mydomain.example
    Port 12345

但是在Cygwin中,该文件似乎不存在。


当前回答

Github已经发布了一篇有用的文章来解释如何解决这个问题。

其他回答

Github已经发布了一篇有用的文章来解释如何解决这个问题。

如果您正在为SSH使用自定义端口(转发),正确的解决方案是

git clone ssh://git@url:2222/user/repo.git

ssh://头文件是诀窍。

当你想要从你的主目录获得相对路径时(在任何UNIX上),你可以使用这个奇怪的语法:

ssh: / / [user@] host.example[:港口]~[用户]/道路/ /回购

例如,如果repo在服务器的/home/jack/projects/jillweb。例如,您以jack身份登录,SSHD监听端口4242:

ssh: / / jack@jill。example: / ~ /项目/ jillweb投寄

当以jill的身份登录时(假设你有文件权限):

ssh: / / jill@jill。example: / ~杰克/项目/ jillweb投寄

(更新:几年后谷歌和Qwant“航空公司”仍然发送我在这里搜索“git非默认ssh端口”) 在较新的git版本中,可能更好的方法是使用GIT_SSH_COMMAND ENV。VAR:

GIT_SSH_COMMAND=“ssh -oPort=1234 .ssh/myPrivate_rsa实现。”key”\ git克隆myuser@myGitRemoteServer:/my/遥控器/git_repo/path

这有一个额外的优势,允许任何其他ssh合适的选项(端口,privi .key, IPv6, PKCS#11设备,…)。

git clone ssh://git@mydomain.example:[port]/gitolite-admin

注意,端口号应该没有方括号:[]