在Centos 6.4上安装gitolite v3。第二个用户正在询问密码

时间:2013-06-04 00:20:11

标签: install centos gitolite

请帮助我理解我做错了什么。我在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
lodar@192.168.0.1'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

我做错了什么?

2 个答案:

答案 0 :(得分:1)

你做了:

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'连接),并打开*非 - 交互式壳。
force-command ssh行将使用表示用户名称的参数(此处为“loadar”)调用gitolite脚本,因为该名称已使用~gitolite/.ssh/authorized_keys中的公钥注册。

答案 1 :(得分:1)

$pwd
/home/lodar/gitolite-admin/keydir    
$ssh-keygen -t rsa -f lodar

上一个命令生成了两个键:public(lodar.pub)和private(lodar)。我在客户端计算机上移动了.ssh中的私钥。公众住在凯迪尔。

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

这就是为什么在'git push'用户lodar添加到giotlite repo之后。我通过命令

在服务器上检查了它
$gitolite sshkeys-lint
sshkeys-lint: === checking authkeys file:
sshkeys-lint: === checking pubkeys:
sshkeys-lint: === gitolite.pub maps to user gitolite
sshkeys-lint: === lodar.pub maps to user lodar
你是对的。我的错误是我的.ssh / config。谢谢您的帮助。它现在很好用。