19

我正在尝试将我的第一个 Git 存储库提交到我在 debian-VM 上设置的 gitlab 实例。一切都将通过本地网络发生。创建新仓库后,以下命令显示在 gitlab 中。

mkdir test
cd test
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@10.200.3.248:1337:Matt/test.git
git push -u origin master

进入后会出现git push -u origin master这种情况:

git@10.200.3.248's password:
fatal: '1337:Matt/test.git' does not appear to be a Git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

问题可能出在运行 Git 的端口上吗?Gitlab 可通过端口 617 访问,因此我可以通过http://xxx.xxx.xxx.xxx:617/Matt/test访问 GUI

我输入的密码似乎是正确的,因为错误的密码最终会出现“权限被拒绝”消息。OT:我不知道为什么要输入密码,因为我已经生成并添加了 ssh-keys,如 gitlab 中所述,但这是另一个问题。

4

2 回答 2

21

我已经解决了我的问题。给定的端口 1337 不是问题,尽管它也是错误的,因为 ssh 似乎无法处理 url 中的端口:

使用具有非标准端口的远程存储库

对我有用的 Git-url 是:

git@10.200.3.248:repositories/Matt/test.git

我的 Git 用户主目录位于其中,/home/git/并且存储库存储在其中,/home/git/repositories因此我必须将存储库添加到我的 Git 路径。

GitLab 告诉我使用 url 的原因git@10.200.3.248:1337:Matt/test.git似乎是 GitLab 中配置的 Git 路径错误。我现在会尝试解决这个问题。

编辑:

中配置了错误的主机/home/git/gitlab/config/gitlab.yml。那里的“主机”必须没有端口......如果需要,端口还有一个额外的选项。

Edit3:仍然无法在没有repositories路径的情况下推送或获取我的测试存储库.. https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide#could-not-read-from-remote -存储库

也许与 rsa-keys 有关,但我不明白它是如何属于一起的。

Edit4:(问题似乎已解决) 我的 rsa 键没问题。问题是我已将 sshd_config 配置为仅允许特定用户进行 ssh 登录。我只是将 Git 添加到允许的用户列表中AllowUsers mylogin git

现在我不必再通过密码登录(如果正确设置了 ssh rsa 密钥,您永远不必通过密码登录)并且该路径在没有“存储库”的情况下正常工作。现在我明白了,这只是一个普通的 ssh 连接——我以前没有意识到这一点..

我想出来的方法:

通过终端以 root 身份登录:

service ssh stop #Current SSH-Connection won't be closed..
/usr/sbin/sshd -d

====debugging mode===

然后在 Git Bash 中:

ssh -Tv git@gitlab.example.com

之后在调试模式下运行 sshd 的终端抛出了一个错误,即由于 AllowUsers,Git is not allowed login ...

之后不要忘记启动 ssh 服务:

service ssh start
于 2013-06-04T09:26:06.327 回答
-4

使用这种格式:

git remote add origin ssh://git@xxx.xxx.xxx.xxx:1337/Matt/test.git

user@host:[port]/path 在大多数情况下,我们省略了端口,它看起来像这样:user@host:/path....

于 2013-06-04T08:06:54.643 回答