我试图让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