GitLab需要git @ localhost密码才能推送到存储库

问题描述 投票:16回答:15

我正在尝试在我的服务器上启动并运行GitLab。我按照gitlab github页面上的安装说明进行,一切顺利。

问题是,当我创建存储库并尝试执行时

sudo git push -u origin master

系统提示我输入'git @ localhost的密码:'

git用户没有密码,所以这是一个问题。

其他遇到此问题的人建议将git添加到我的sshd conf中的AllowedUsers中,但是我那里没有AllowedUsers字段,因此这似乎不是问题。

我对ssh还是很陌生,所以我相信它是某种ssh密钥问题,尽管我试图将所有相关的ssh密钥添加到/home/git/.ssh/authorized_keys并验证其中没有换行文件。

仅供参考,我的安装完全通过了gitlab Wiki中提供的测试:

sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production

任何建议,不胜感激!

编辑

因此,我最终通过只承诺从另一台计算机进行回购来解决了这个问题。照原样,我被SSH到了gitlab运行所在的同一台机器上。一旦我尝试从主机以外的其他机器进行提交,它就很好用了。因此,对于某些人来说,这可能是一个解决方案(对我们而言,这是因为我们在与服务器不同的机器上开发)。

对于任何试图在同一台计算机上托管和开发它的人,这仍然是一个开放式问题。

git ssh gitolite gitlab
15个回答
4
投票

TL; DR

密钥存储在gitlab DB和gitolite端。您应该使用出厂版本的gitolite-admin.git文件夹,不要使用备份!并稍后使用update keys命令为gitolite重建Keys。(将已经保存在gitlab数据库中的那些键更新为gitolite)

sudo -u gitlab -H bundle exec rake gitlab:gitolite:update_keys RAILS_ENV=production

最有可能是因为gitolite密钥存在某些问题,无法正确保存。这些密钥(用于登录)实际上由gitlab和gitolite单独保存。对于拉/推,实际上是使用保存在gitolite内的键。(git /存储库/gitolite-admin.git/index、git/.gitolite/keydir、git/.ssh/authorized_keys)

gitlab通常应有助于将Web上导入的密钥保存到gitolite文件中。但是,由于某些原因,它失败了。由于密钥未正确保存在gitolite中,因此客户端/服务器无法使用密钥并回退到密码。

您必须检查并修复保存在gitolite中的那些键才能纠正问题。

查看更多https://groups.google.com/forum/?fromgroups=#!topic/gitlabhq/X0z_9l7L7A8


0
投票

我对此很困惑。当您使用sudo git时,表示git以root身份启动。问题是-您是否为root创建了SSH密钥并将其放在Gitlab中?


0
投票

here被打勾。


0
投票

这意味着gitlab ssh服务器未正确配置。


0
投票

我最近遇到了同一问题,发现对我来说问题是SELinux阻止sshd


0
投票

对于Bitnami或任何其他想要快速解决它的配置有此问题的人,只需使用完整路径即可。


0
投票

我有一个类似的问题:Gitlab服务器位于docker容器内,每次执行推送时,我都有:git@localhost's password:


3
投票

如果安装顺利,则意味着gitlab可以克隆gitolite-admin存储库而不会出现问题。但是您说它通过了状态检查,这意味着您正在使用一个名为“ gitlab”的帐户进行ssh连接。

这也意味着任何客户都必须使用相同的帐户'gitlab'而不是'git'ssh。因此,如果您的ssh密钥是通过gitlab接口添加的,则可以git clone / git push到远程名称来源,该来源的地址为[gitlab@server'

要调试更多,请查看“ Setup Git Remote SSH (git-upload-pack / git-receive-pack)”中提到的其他一些技巧:

如果无法在本地推送(在服务器本身,即'localhost'上),请至少尝试一个:

ssh -vvvT gitlab@localhost

不需要密码,因为/home/gitlab/.ssh/id_rsa/home/gitlab/.ssh/id_rsa.pub都存在。


2
投票

我收到了相同的密码提示。我的问题是我只将ssh的使用限制为几个用户。我将git用户添加到AllowUsers列表sshd_config中,并且一切正常。


1
投票

最近这开始在我身上发生了很多-对于工作项目git会问我我的电子邮件和密码。输入后,它仍然可以,但很烦人。

我可以为我可以访问的任何给定应用程序解决此问题:

git config remote.origin.url [email protected]:user_org_or_co/repo_name_itself

例如

git config remote.origin.url [email protected]:smithw/bookmarkapp

1
投票

请确保您的gitlab配置文件具有公共ssh密钥。登录gitlab,转到您的个人资料,然后选择按钮“添加公共密钥”。将“ keyfile” .pub内容复制并粘贴到“密钥”框中。 gitlab的某些版本存在一个错误,当您添加公钥时,它不会更新authorized_keys文件。将您的公钥添加到个人资料后,请验证(但不要手动添加)公钥是否在authorized_keys文件中。如果这不是问题,那么也许较早的答案之一会有所帮助。


1
投票

在git服务器上编辑/etc/ssh/sshd_config

取消对身份验证部分下的以下行的注释或添加它们:

PubkeyAuthentication yes

AuthorizedKeysFile %h/.ssh/authorized_keys

给服务器重新通电,然后启动gitlab


0
投票

我遇到了表现出类似症状的问题。我的问题是,路由器后面有两台计算机。路由器设置为将SSH流量(端口22)转发到计算机1。计算机2上安装了Gitlab。我正在使用域和面向公众的IP进行连接。当我推送时,SSH流量将定向到计算机1。计算机1上仅安装了git就存在一个git用户。计算机1提示我输入git用户的密码。

我的安装也通过了所有准备好的检查。

我不确定您是否遇到相同的问题,但是症状完全相同,所以我认为这可能有所帮助。


0
投票

您的git和gitlab用户没有密码吗?

sshd_config怎么样?

检查此行是否在文件中:PermitEMptyPassword Yes

无论如何,我认为它不安全,在我的安装中,我将其设置为“是”,克隆然后保留旧的配置...当克隆ssh_key由git用户保存时,它不再询问密码了。

但是到现在,我遇到另一个错误,当我要推送时,对于每个新用户,我们必须重新配置ssh以允许空推送,然后保留配置。

((我仍然没有测试此方法,因为我发现我的gitlab不在git用户中创建存储库:/)


0
投票

这可能太简单了,但是我遇到了同样的问题。我猜是因为它选择了localhost作为域名。

© www.soinside.com 2019 - 2024. All rights reserved.