请帮助我理解我做错了什么。我的服务器运行在 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
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="107c7f747162502129223e2126283e203e21" rel="noreferrer noopener nofollow">[email protected]</a>'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 session 中使用它。
但另一个错误是在您的 ~/.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
。
关于installation - 在 Centos 6.4 上安装 gitolite v3。第二个用户正在询问密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16907919/