GitLab需要的git @本地密码推到回购(GitLab requires git@localho

2019-06-26 16:51发布

我试图让GitLab起来,我的服务器上运行。 我跟着在gitlab GitHub的页面的安装说明,一切都进行得很顺利。

问题是,当我创建一个回购协议,并尝试

sudo git push -u origin master

提示我输入“git的@本地的密码:”

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

谁遇到了这个问题其他人建议我的sshd的conf加入GIT中AllowedUsers,但我没有一个AllowedUsers场在那里,所以这似乎并不成为一个问题。

我仍然很新的东西,SSH,所以我相信它的某种SSH密钥的问题,虽然我试图添加所有相关的SSH密钥/home/git/.ssh/authorized_keys并证实没有在文件中没有换行符。

仅供参考,我完全通过安装在gitlab维基提供的测试:

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

任何建议非常感谢!

编辑

于是,我终于得到了解决此通过从不同的机器只是承诺回购。 由于这是,我是SSHed成gitlab是运行在同一台机器。 当我试图从比主机以外的计算机犯,这真是棒极了。 所以,这可能是对某些人(这是我们的,因为我们制定单独的机器比我们的服务器)的解决方案。

这仍然是一个任何人试图主办,谁遇到了这种在同一台机器上建立一个开放式的问题。

Answer 1:


TL; DR

两个gitlab DB和gitolite侧键店。 您应该使用工厂构建gitolite-admin.git文件夹,不要用你的备份! 并与更新键命令重建键gitolite以后。 (更新那些已经保存的gitlab分贝gitolite内键)

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

最有可能是因为有关于gitolite键东西问题无法正确保存。 这些按键(登录)实际上是由gitlab&gitolite另行存放。 对于推/拉实际使用保存里面gitolite键。 (GIT /库/ gitolite-admin.git /索引,GIT中/ .gitolite / keydir,GIT中/的.ssh / authorized_keys中)

gitlab通常应有助于对网络保存这些进口钥匙,gitolite文件。 然而,由于种种原因失败了。 由于键不里gitolite正确保存,客户端/服务器无法使用键和回退到密码。

你必须检查并修复保存里面gitolite纠正问题的钥匙。

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



Answer 2:

如果安装顺利,这意味着你的gitlab能够克隆gitolite管理员回购没有问题。
但是你说它通过状态检查,这意味着你正在使用的ssh连接,名为“gitlab”的帐户。

这也意味着,任何客户都会有以相同的帐户“到ssh gitlab ”,而不是“ git ”。
所以,如果你的SSH密钥已经通过gitlab接口加入,那么你就可以克隆的git /混帐推到一个远程名称的由来这将对地址“ gitlab@server

要调试多一些,看看中提到的一些其他提示“ 设置远程Git SSH(混帐上传包/混帐接收包) ”:

如果你不能在本地推送(服务器本身上,这是对的“localhost”),尝试至少一个:

ssh -vvvT gitlab@localhost

它不应该要求任何密码,因为/home/gitlab/.ssh/id_rsa/home/gitlab/.ssh/id_rsa.pub都存在。



Answer 3:

我收到了同样的密码提示。 我的问题是,我不得不限制SSH使用率只有几个用户。 我加入了git的用户到列表的AllowUsers sshd_config的,一切伟大的工作。



Answer 4:

这开始发生在我最近不少 - 工作项目的git会问我,我的电子邮件地址和密码。 当进入它继续确定,但它很烦人。

我可以解决这个问题对于任何给定的应用程序,我要访问:

git config remote.origin.url git@github.com:user_org_or_co/repo_name_itself

git config remote.origin.url git@github.com:smithw/bookmarkapp


Answer 5:

确保您的个人资料gitlab您有SSH密钥。 登录到gitlab,转到您的个人资料,并选择按钮“添加公共密钥”。 复制和粘贴你“密钥文件”的.pub在键框的内容。 有gitlab的一些版本是有一个bug,当你没加你的公共密钥,它没有更新authorized_keys文件。 验证(但不要手动添加),你的公钥在authorized_keys文件将其添加到您的个人资料后。 如果这不是问题,那么也许较早的一个回答会有所帮助。



Answer 6:

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

取消以下行下识别部分或添加它们:

PubkeyAuthentication yes

AuthorizedKeysFile %h/.ssh/authorized_keys

将你的服务器电源循环再火起来gitlab



Answer 7:

我跑进这表现出类似的症状的问题。 我的问题是,我有一个路由器后面的两台电脑。 路由器设置端口转发SSH通信(端口22)到计算机1. Gitlab安装计算机2.我使用的是域和面向IP连接公众。 当我推,则SSH流量被定向到计算机1有计算机1上一个git用户简单地从具有安装GIT中。 计算机1提示我的git的用户的密码。

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

我不知道,如果你有同样的问题,但症状完全一样的,所以我想这可能帮助。



Answer 8:

你的Git和gitlab用户密码的?

该如何sshd_config是什么?

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

无论如何,我想这是不安全的,在我安装,我把这个“是”,克隆,然后保留旧的配置......当克隆的ssh_key由用户git的保存,也不会问密码了..

但到现在,我遇到了另一个错误,当我要去推动,对于每一个新的用户,我们必须重新配置为允许空推SSH,然后继续回的配置。

(我还没有测试过这种方法,因为我发现我的gitlab没有创造用户的git回购:/)



Answer 9:

这可能是太简单了,但我有同样的问题。 我猜这是因为它拿起localhost作为域名。

它的工作,当我从另一台计算机登录回到我的本地机器上,然后试图提交。 这是相当愚蠢的,但值得一试。



Answer 10:

我搞混了这一次。 当你使用sudo git ,这意味着Git是正在启动的根源。 现在的问题是 - 你创建的根SSH密钥,并把它里面Gitlab?

我猜您创建未经您的SSH密钥sudo (这是普通账号),把SSH公钥到Gitlab,然后运行sudo git

您可以尝试不运行git sudo 。 如果你有文件夹的权限问题,这让你在第一时间使用sudo,试着给该文件夹的用户帐户的访问。 或许通常会尝试,你有写权限的文件夹中的饭桶。



Answer 11:

有一种打勾为这里 。

要确定问题的原因,检查通过服务器上的日志sudo grep sshd /var/log/auth.log

直到2013年12月13提交b24d5d ,问题的流浪开发机器上,由于过多的权限引起.ssh/ 。 你必须有:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

或ssh拒绝让RSA连接和sudo grep sshd /var/log/auth.log说:

Authentication refused: bad ownership or modes for file /home/git/.ssh/authorized_keys    

该问题已经通过发展sshd的设置对非sctrict模式,使其能够正确运行,即使它的权限是太自由解决。



Answer 12:

这意味着gitlab SSH服务器配置不正确。

编辑/etc/ssh/sshd_config ,并确保:

PasswordAuthentication no
ChallengeResponseAuthentication no

这应该强制SSH密钥只登录这也是一个很好的安全措施。 许多较新的发行版都已经这个默认启用。

不要问我,如果你被锁定外,清楚,以便不到哪问如何配置和使用私有/公共密钥对的地方。



Answer 13:

我碰到了同样的问题,最近,发现这对我的问题是,SELinux的是防止sshd的从gitlab数据目录访问到authorized_keys文件/var/opt/gitlab/

为了解决这个问题,编辑/etc/selinux/targeted/contexts/files/file_contexts.homedirs并添加行:

/var/opt/gitlab/\.ssh/.*    system_u:object_r:ssh_home_t:s0

然后运行:

$ restorecon -Rv /var/opt/gitlab

来源: https://serverfault.com/questions/50573/selinux-preventing-passwordless-ssh-login



Answer 14:

另外,具有Bitnami或谁想要快速解决任何其他配置这个问题的人,只要用全路径来代替。

git clone git@server_adress:/full/path/to/project.git

编辑:我忘了提,这是非常重要的检查,如果您通过网页添加SSH密钥混帐实验室..



文章来源: GitLab requires git@localhost password to push to a repo