我的VPS提供商建议我将SSH端口保留为他们默认分配的自定义端口号(而不是22)。问题是,虽然我知道我可以在创建远程配置时提供端口号,但在进行git克隆时似乎不能这样做。我使用的是gitolite,所以我克隆命令如下:
git clone git@mydomain.com:gitolite-admin
有没有办法将其转换为使用自定义ssh端口号?
我还应该提到我在windows上运行cygwin。我见过很多地方要求将自定义端口添加到~/.ssh/config
文件中,如下所示
Host mydomain.com
Port 12345
然而,在cygwin中,该文件似乎并不存在。
发布于 2018-01-30 15:18:19
当您需要主目录(在任何UNIX上)的相对路径时,可以使用以下奇怪的语法:
ssh://[user@]host.xz[:port]/~[user]/path/to/repo
例如,如果存储库位于服务器jill.com
上的/home/jack/projects/jillweb
中,并且您以jack
身份登录,并使用sshd
侦听端口4242:
ssh://jack@jill.com:4242/~/projects/jillweb
以jill
身份登录时(假设您具有文件权限):
ssh://jill@jill.com:4242/~jack/projects/jillweb
发布于 2018-06-14 18:00:38
(更新:几年后,谷歌和Qwant“航空公司”在搜索"git非默认ssh端口“时仍然会把我送到这里)在更新的git版本中,一个可能更好的方法是使用GIT_SSH_COMMAND ENV.VAR,如下所示:
GIT_SSH_COMMAND="ssh -oPort=1234 -i ~/.ssh/myPrivate_rsa.key" \ git clone myuser@myGitRemoteServer:/my/remote/git_repo/path
这有一个额外的好处,即允许任何其他适合ssh的选项(端口、priv.key、IPv6、PKCS#11设备等)。
发布于 2021-03-16 20:30:52
Github已经在a helpful article上解释了如何解决这个问题。
https://stackoverflow.com/questions/5767850
复制相似问题