我正在尝试将我的第一个Git存储库提交给gitlab实例,我已经在debian-VM上设置了它。一切都将通过本地网络发生。创建新的repo后,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:我不知道为什么要输入passwd,因为我已经生成并添加了ssh-key,如gitlab中所述,但这是另一个问题。
答案 0 :(得分:20)
我已经解决了我的问题。给定的端口1337不是问题,虽然它也是错的,因为ssh似乎无法处理url中的端口:
Using a remote repository with non-standard port
对我有用的Git-url是:
git@10.200.3.248:repositories/Matt/test.git
我的Git用户主目录位于/home/git/
,存储库存储在/home/git/repositories
中,因此我必须将存储库添加到我的Git路径中。
GitLab告诉我使用网址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-repository
也许与rsa-keys有关但我不明白它是如何属于一起的。
编辑4 :(问题似乎已经解决)
我的rsa-key很好。问题是我已经配置了我的sshd_config以仅允许某个用户进行ssh-login。我只是将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登录...
不要忘记之后开始使用ssh服务:
service ssh start
答案 1 :(得分:-3)
使用以下格式:
git remote add origin ssh://git@xxx.xxx.xxx.xxx:1337/Matt/test.git
user@host:[port]/path
在大多数情况下,我们省略了端口,它看起来像这样:user@host:/path
....