请帮助我理解我做错了什么。我在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
我做错了什么?
答案 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。谢谢您的帮助。它现在很好用。