我能够使用这些说明使用Gitlab设置Virtualbox - > https://github.com/gitlabhq/gitlabhq/wiki/VirtualBox-Image。 Web界面工作得很好,我添加了我的主机公钥并创建了一个“测试”项目。但是,我无法推送到我的测试存储库,因为它在创建测试目录并执行'git init'之后要求输入git@33.33.33.10的密码。我添加了我的密钥,网络界面工作得很好。什么想法可能是错的?
$ git remote add test git@33.33.33.10:test.git
$ git push -u test master
git@33.33.33.10's password: ...
我也尝试了相同的结果(2222 VM-side等于22 Host-side):
git remote add test ssh://git@localhost:2222/test.git
git push -u test master
git@localhost's password:...
不应要求密码。我还将'vagrant'用户添加到VM上的'git'组。
我已经验证了在VM上我能够正确地收到以下预期结果:
vagrant@lucid32:~$ ssh -T git@localhost
hello rails, this is gitolite v2.2-11-g8c4d1aa running on git 1.7.0.4
the gitolite config gives you the following access:
R W gitolite-admin
@R_ @W_ testing
这是我的VagrantFile:
Vagrant::Config.run do |config|
config.vm.box = "gitlab"
config.vm.network :hostonly, "33.33.33.10"
end
这与远程git推送到virtualbox有关。谢谢你的帮助!
答案 0 :(得分:1)
我有一些严重的问题让流浪的机器运转起来。例如,它不使用代码所期望的相同默认值(参见#1)。它使用rvm(参见#3)
流浪汉VM决定使用“vagrant”而不是“git”作为用户
所以你的回购网址真的是:
ssh:// vagrant @localhost:2222 / test.git
我添加了〜/ .ssh / config(chmod 600):
主持人*
用户流浪者
IdentityFile~ / .ssh / id_rsa`
如果你越过这个,你可能会收到关于“/ usr / bin / env ruby找不到文件”的错误,因为你正在使用使用rvm的vagrant。
我不得不做这两件事:
env | grep -E "^(GEM_HOME|PATH|RUBY_VERSION|MY_RUBY_HOME|GEM_PATH)=" > ~/.ssh/environment
PermitUserEnvironment yes
添加到sshd_config + restart 答案 1 :(得分:0)
似乎您的密钥未发送到虚拟机。您可以检查用户.ssh目录中是否有正确的id_rsa和id_rsa.pub文件。如果您在Windows上运行vagrant(http://vagrantup.com/docs/getting-started/ssh.html)
,这可能会非常有问题希望这会有所帮助。
答案 2 :(得分:0)
我使用不在虚拟机中的gitlabhq_install脚本进行了全新安装,并且遇到了原始相同的问题。我能够创建一个项目并通过Web界面添加我的密钥,但无法完全推送到测试仓库。所以我通过运行“ssh-copy-id -i~ / .ssh / id_rsa.pub remote-host”并重新启动ssh来添加我的用户(而不是gitlabhq用户)公共ssh密钥。我仍然遇到同样的问题所以我'sudo vim /home/git/.ssh/authorized_keys'并手动将我用上述命令添加的密钥复制到'#gitolite start / end'标签之间。在重置ssh之后,我才能最终推动......现在我仍在挠头,但至少它起作用我想。
答案 3 :(得分:0)
我有同样的问题,而我正试图推送到gitlab.com:
git push gitlab mybranch
使用以下流浪代码推送事件
config.vm.provision :shell, :name => "pushing to remote", :keep_color => true, :privileged => false, :inline => <<-SHELL
---snip---
git push gitlab mybranch
---snip---
SHELL
发生以下错误:
==> default: GitLab: The project you were looking for could not be found.
==> default: fatal: Could not read from remote repository.
==> default:
==> default: Please make sure you have the correct access rights
==> default: and the repository exists.
我的解决方案是将应该由vagrant执行的代码放在shell脚本中,并使用包含在su
config.vm.provision :shell, :name => "Workaround to run update-repo.sh as vagrant user", :keep_color => true, :privileged => true, :inline => <<-SHELL
su - vagrant -c /home/vagrant/bin/push.sh
SHELL