2

私が間違っていることを理解するのを手伝ってください。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

私は何を間違っていますか?

4

2 に答える 2

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

最後のコマンドは、公開 (lodar.pub) と秘密 (lodar) の 2 つの鍵を生成しました。クライアント コンピューターの .ssh で秘密鍵を移動しました。パブリックなものはkeydirにとどまりました。

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

そのため、'git push' ユーザー lodar が giotlite リポジトリに追加されました。コマンドでサーバー上で確認しました

$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にありました。助けてくれてありがとう。それは今うまくいっています。

于 2013-06-04T12:47:32.070 に答える
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

gitolite のようなプログラムはどのように機能しますか?」を参照してください:
アイデアは、常に同じユーザーを使用して gitolite サーバーに接続し (この場合は ' gitolite' として接続)、*非対話型シェルを開くことです。force-command ssh 行は、ユーザーの名前 (ここでは ' ')
を表すパラメーターを使用して gitolite スクリプトを呼び出します。loadar~gitolite/.ssh/authorized_keys

于 2013-06-04T07:17:24.587 に答える