请帮助我了解我在做什么错。我在CentOS 6.4上有服务器,我需要安装gitolite v3。我在做什么?首先,我使用下一个命令安装一个:

yum install git* perl-Time-HiRes

useradd -m --system --shell /bin/bash --user-group gitolite

su - gitolite

mkdir bin


echo "PATH=$HOME/bin:$PATH" > .bash_profile

source .bash_profile

ssh-keygen -t rsa

cp .ssh/id_rsa.pub ./gitolite.pub

git clone git://github.com/sitaramc/gitolite

gitolite/install -ln

gitolite setup -pk gitolite.pub


安装成功。比我克隆gitolite-admin存储库:

git clone gitadmin:gitolite-admin
cd gitolite-admin/keydir


并为新用户生成公用密钥(lodar.pub)

ssh-keygen -t rsa -f lodar
mv ./lodar ../../.ssh/lodar


比我编辑conf / gitolite.conf:

repo gitolite-admin
   RW+   = gitolite
repo testing
   RW+   = @all
repo   empty
   RW+   = lodar


提交所有更改:

git add keydir/lodar.pub
git commit -m 'add user lodar and new repo empty'
git push


仅此而已。推送也成功。经过所有操作后,我创建了.ssh / config

Host gitadmin
    User gitolite
    Hostname 192.168.0.1
    Port 22
    IdentityFile ~/.ssh/gitolite

Host gitlodar
    User gitolite
    Hostname 192.168.0.1
    Port 22
    IdentityFile ~/.ssh/lodar


但是如果我尝试使用

ssh gitlodar info
[email protected]'s password:


我必须输入密码。

ssh gitadmin info
hello, gitolite, this is gitolite@lodar-14452 running gitolite3 v3.5.1-4-g2f48a3e on git 1.7.1
R W   gitolite-amdin
R W   testing


我究竟做错了什么?

最佳答案

您做了:

mv ./lodar ../../.ssh/lodar


我以为你是说

cp ./lodar.pub ../../.ssh/
mv ./lodar     ../../.ssh/


因为如果您不复制~/.ssh中的公钥,则将无法在ssh会话中使用它。

但是另一个错误是在您的~/.ssh/config文件中:

Host gitlodar
    User gitolite          # not loadar!
    Hostname 192.168.0.1
    Port 22
    IdentityFile ~/.ssh/lodar


请参阅“ How do programs like gitolite work?”:
这个想法是始终使用同一用户连接到gitolite服务器(在您的情况下,以'gitolite'连接),并打开一个*非交互式外壳。
强制命令ssh行将使用代表用户名(此处为“ loadar”)的参数调用gitolite脚本,因为该名称已在~gitolite/.ssh/authorized_keys中用公钥注册。

关于install - 在Centos 6.4上安装gitolite v3。第二个用户正在询问密码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16907919/

10-15 12:59