2012-02-20 11 views
2

私は愚かにgitolite用のsshキーを使用してノートパソコンのハードドライブをフォーマットしました。私は自分のサーバーへのルートアクセスを持っていて、この回答Gitolite access repairを成功裏にコピーしました。ファイルtmpフォルダに固定gitoliteとcant gl-admin-pushからロックアウト

私の問題は、「GL-adminのプッシュ」をここでやったときに私はエラーを取得することエラーです:

Unable to determine correct path for gitolite scripts from the authkeys file. 

Perhaps you haven't installed gitolite yet? 

Or perhaps this is an HTTP mode install? If so, please set the GL_BINDIR 
environment variable to the full path of the gitolite scripts, then re-try 
this command. For example (if you followed doc/http-backend.mkd precisely): 

GL_BINDIR=/var/www/gitolite-home/bin /home/git/bin/gl-admin-push 
私gitoliteは、私がロックされて前に正常に動作してインストール

自分自身(facepalm)

A nnyこの混乱からどうやって抜け出すことができるのか?

+0

あなたの 'GL_BINDIR'環境変数の値は? – VonC

+0

authorized_keysに問題がありました。公開鍵の前にコマンドがありませんでした。 例:コマンド: "/ home/git/bin/gl-auth-command myusername"、ポート転送なし、X11転送なし、エージェント転送なし、no-pty - 現在動作中 – Purplefish32

+0

キャッチ。私は以下の答えとして、可視性の高い参照を追加しました – VonC

答えて

2

OP Purplefish32は、gl-admin-pushを実行しているユーザーに公開鍵が正しく登録されていない場合にもこのメッセージが表示されることを認識しています。

このキーは、Gitolite force-commandスクリプトで設定する必要があります。

command="/home/git/bin/gl-auth-command myusername",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty 

これは何that script doesと一致している:私は正確に同じ問題を抱えている

# if GL_BINDIR was not passed in, find it 
[ -z "$GL_BINDIR" ] && 
    GL_BINDIR=` perl -ne 'print($1), exit if /^command="(.+?)\/gl-(time|auth-command) /' < $HOME/.ssh/authorized_keys` 
# GL_BINDIR still not known? we have a problem... 
[ -z "$GL_BINDIR" ] && { 
    echo " 

Unable to determine correct path for gitolite scripts from the authkeys file. 
2

修正はVonCが言及したcommand=".."ラインと彼の~/.ssh/フォルダ内の私のgitユーザー(gitoliteでの作業1)のためのサーバー上のauthorized_keysファイルを更新することだった、プラス私は追加したいユーザーのためのssh-pubkeyでエントリーはすでに存在する他のエントリーと一貫していました。

また、~/ssh/old_authkeysファイルを削除する必要がありました。これは、gitoliteが常に参照していて、更新されたauthorized_keysファイルが削除されているようです。 (さて、私はもう一度それを必要とする場合は、私はそれを移動しました...)

私は余分な投稿をする資格があると感じています。 ;)

EDIT:
authorized_keysold_authkeysに私は新しいレポやグループの設定と私のgitolite設定を更新するたびに移動させたように思えます。 :|

EDIT2:すべての問題の
ソース...からサーバレポさんにアクセスしようとしたとき、私は中

[email protected]:repo 

ようgitoliteのために使用されていgitと呼ばれるユーザーとしてログインされていませんでしたサーバとして、ただし、すなわち、myuser
これは構成が乱れ、時間がたってauthorized_keysに戻りました。
私は(とないmyuserのために)ユーザーgit用のssh-キーを設定するとは、(ないmyuserとして)gitとしてログインし、私は

git clone /local/path/on/server/to/gitolite-admin 
(then I set the right permissions in the gitolite config) 
gl-admin-push 

を経由して設定を固定してログインすると、すべてが...行われていましたin git userまた、gl-admin-pushはエラーなく実行されました。

その後、通常の使用git clone [email protected]:repo - git add . - git commit - git push [email protected]:repoが使用可能でした。

大きな問題を引き起こす別のケースのユーザー権利です。

//この得られた知識には、それに費やされる時間の価値がないという知恵が伴います。

+0

ありがとう、私の 'authorized_keys'ファイルを編集しました。 –

+0

sjas、StackOverflowに投稿するコンテンツには誓いの言葉を使わないでください。あなたの答えは、誓いを取り除くために編集されます。 –

+0

ああ、申し訳ありません。そして、私は本当にbybeがすぐに彼の望みのバッジを得ることを願っています。 – sjas

関連する問題