通过ssh从stash克隆git-repository

时间:2013-09-23 06:13:18

标签: git ssh bitbucket-server

我有一个在存储服务器上运行的git-repository。通过http克隆存储库工作正常

git clone http://user@server:7990/a/b/sandbox.git

出于一些奇怪的原因,当我用http切换ssh并使用端口时,它会给我

git clone ssh://user@server:7999/a/b/sandbox.git
Cloning into sandbox...
fatal: remote error: Remote URL invalid
A repository could not be determined from the remote URL. Please confirm the
clone URL in Stash and try again. URL suffix: '/scm/ct/sandbox.git'
fatal: The remote end hung up unexpectedly

服务器已启用ssh,端口设置为7999。怎么来的,当通过ssh而不是http发送请求时它无法找到存储库?

2 个答案:

答案 0 :(得分:6)

问题解决了。出于某种原因,存储库的SSH-URL后缀与HTTP-URL后缀不同。在发现之后,它起作用了。

编辑:
http-url存储区给了我user@server:7990/a/b/sandbox.git,而ssh-url存储区给了我user@server:7999/b/sandbox.git(其中a和b当然是占位符)。

正如评论中提到的那样,我应该将其添加到我的答案中。

答案 1 :(得分:1)

配置ssh为您执行

除非明确写出克隆url(例如克隆是由参数化脚本执行),否则通常更容易配置ssh以便它理解server的含义,因此命令参数只是默认值通常会期待。例如,在你的ssh config file put:

Host server
  User user
  Port 7999

然后允许:

$ git clone server:/a/b/sandbox.git

通过这种方式,特别是如果git服务器上有多个存储库,则意味着您不需要记住克隆存储库的更复杂/显式语法。