我已经在omnibus-gitlab教程之后的ubuntu版本12.04中安装了项目this。
一切似乎都是正确的。服务器通过IP 192.168.1.68 通过局域网正常工作,我可以访问gitlab的所有功能(使用浏览器)。
我创建了一个项目,其中 root 用户(管理员)名为 project1 (也正确配置了密钥)
通过浏览器创建项目,我在本地工作区中再次创建它,将其定义为已提交的存储库(进行了一些更改)并将其推送到服务器。基本上我遵循了以下步骤:
mkdir teste
cd teste
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@192.168.1.68:root/project1.git
git push -u origin master
在推送命令时,终端返回了以下消息:
root@pcname:~Projects/project1# git push -u origin master
git@192.168.1.68's password:
fatal: 'root/project1.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
确定。尝试了解为什么会发生这种情况,我才刚刚意识到,当我们访问ssh服务器git@192.168.1.68
时,我们没有访问真正的存储库目录,而是这样,我们正在访问3个以前的级别。
因此,这是具有存储库的目录:
/var/opt/gitlab/git-data/repositories
这里我们有root/project1.git
目录/存储库。
而不是那条路径,当我们访问git@192.168.1.68:root
时,我们实际上正在访问:
/var/opt/gitlab
没有root
目录。
因此,结果自然就是没有找到存储库的git警告。
ps:我们使用git@192.168.1.68:root/project1.git
代替git@192.168.1.68:git-data/repositories/root/project1.git
它是否运作良好,我们能够正常推送存储库。
为什么会发生这种情况?如何将ssh地址定向到正确的目录(或存储库)路径?
答案 0 :(得分:0)
您应该能够在添加原点时使用所需目录的绝对路径来推送到:
git remote add origin git@192.168.1.68:/var/opt/gitlab/git-data/repositories/root/project1.git
或者,要回答关于将ssh指向存储库目录(或其他路径)的问题,那么您需要创建一个具有该路径的用户作为主目录,并在原始连接中使用该路径。假设您使用 newuser 的主目录 存储库 目录,您将使用:
git remote add newuser@192.168.1.68:root/project1.git
答案 1 :(得分:0)
我想我一直在遇到同样的问题。
您可能需要正确配置密钥。您的/var/opt/gitlab/.ssh/authorized_keys应该是(当然包含您的密钥):
command="/opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell key-2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB..your.key...... someoneskey@keylabs.lab
(!)请注意,有些文档似乎已过时且路径已更改
如果你ssh到你的节点
ssh -T git@mynode.com
它应该说:
Welcome to GitLab, <yourname>!
并且应该关闭连接。如果它说
Welcome to GitLab, Anonymous!
您的用户无法识别。您需要在Web界面中将您的密钥添加到您的用户。
如果您能够通过ssh使用git用户登录,则您的authorized_keys未按上述方式配置
修改强> 要清楚,在设置gitlab时似乎不需要任何额外的authorized_keys。我的authorized_keys文件是空的,gitlab可以正常工作。