rya*_*zec 135 git ssh version-control cygwin
我的VPS提供商建议我将SSH端口保留为默认分配的自定义端口号(而不是22).事情是我知道我可以在创建远程配置时给出端口号,但是在进行git克隆时我似乎无法做同样的事情.我正在使用gitolite所以我克隆命令看起来像:
git clone git@mydomain.com:gitolite-admin
Run Code Online (Sandbox Code Playgroud)
有没有办法将其转换为使用自定义ssh端口号?
我还要提一下我在windows上运行cygwin.我已经看到多个地方说要将自定义端口添加到~/.ssh/config文件中
Host mydomain.com
Port 12345
Run Code Online (Sandbox Code Playgroud)
但是在cygwin中,该文件似乎不存在.
Chr*_*sto 297
git clone ssh://git@mydomain.com:[port]/gitolite-admin
Run Code Online (Sandbox Code Playgroud)
请注意,端口号应该没有方括号:[]
Bad*_*laj 19
如果您使用 SSH 的自定义端口(转发),正确的解决方案是
git clone ssh://git@url:2222/user/repo.git
Run Code Online (Sandbox Code Playgroud)
标题ssh://就是窍门。
Dan*_*tos 10
如果需要主目录中的相对路径,请使用以下奇怪的语法:
ssh://[user@]host.xz[:port]/~[user]/path/to/repo
例如,如果repo在/home/jack/projects/jillweb服务器上,jill.com并且您正在jack使用sshd侦听端口4242 登录:
ssh://jack@jill.com:4242/~/projects/jillweb
登录时jill(假设您有文件权限):
ssh://jill@jill.com:4242/~jack/projects/jillweb
(更新:几年后,Google和Qwant“航空公司”在搜索“ git non-default ssh port”时仍然将我发送到这里)在较新的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设备等)的附加优点。
以上答案很好,但对于像我这样的新git用户并不清楚。因此,经过一些调查,我提供了这个新答案。
当配置文件不存在时,您可以创建一个。除了port配置文件,还可以包含其他ssh config选项:user IdentityFile依此类推,配置文件看起来像
Host mydomain.com
User git
Port 12345
Run Code Online (Sandbox Code Playgroud)
如果您正在运行linux,请注意配置文件必须具有严格的权限:用户读/写,并且其他人不能访问
很酷,我们唯一应该知道的是git中的ssh url有两种语法
ssh://[user@]host.xz[:port]/path/to/repo.git/[user@]host.xz:path/to/repo.git/默认情况下,Gitlab和Github将显示类似语法 URL 的scp,并且我们无法提供自定义ssh端口。因此,为了更改ssh端口,我们需要使用标准语法
| 归档时间: |
|
| 查看次数: |
131784 次 |
| 最近记录: |