请帮助我了解我在做什么错。我在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/