我的VPS提供商建议我将SSH端口保留为他们默认分配的自定义端口号(而不是22)。问题是,虽然我知道在创建远程配置时可以提供端口号,但在进行Git克隆时似乎不能这样做。我使用gitolite,所以克隆命令看起来像:
git clone git@mydomain.example:gitolite-admin
是否有一种方法将其隐蔽为使用自定义SSH端口号?
我还应该提到我在Windows上运行Cygwin。我看到很多地方都说要将自定义端口添加到~/。ssh /配置文件:
Host mydomain.example
Port 12345
但是在Cygwin中,该文件似乎不存在。
当你想要从你的主目录获得相对路径时(在任何UNIX上),你可以使用这个奇怪的语法:
ssh: / / [user@] host.example[:港口]~[用户]/道路/ /回购
例如,如果repo在服务器的/home/jack/projects/jillweb。例如,您以jack身份登录,SSHD监听端口4242:
ssh: / / jack@jill。example: / ~ /项目/ jillweb投寄
当以jill的身份登录时(假设你有文件权限):
ssh: / / jill@jill。example: / ~杰克/项目/ jillweb投寄
上面的答案很好,但对于像我这样的Git新用户来说并不清楚。所以经过一番调查,我给出了这个新的答案。
SSH配置文件方式有什么问题?
当配置文件不存在时,可以新建配置文件。除了端口,配置文件还可以包括其他SSH配置选项:用户IdentityFile等等,配置文件如下所示
Host mydomain.example
User git
Port 12345
如果您正在运行Linux,请注意配置文件必须具有严格的权限:用户可以读/写,其他人不能访问
SSH URL方式呢?
这很酷,我们只需要知道Git中SSH URL有两种语法
标准语法ssh://[user@]host.xz[:port]/path/to/repo.git/
SCP类语法[user@]host.xz:path/to/repo.git/
默认情况下,Gitlab和GitHub将显示类似scp语法的URL,我们不能提供自定义SSH端口。因此,为了改变SSH端口,我们需要使用标准语法