2011-09-23 11 views
6

最近GitoliteをCygwin環境にSSHキーなどを使用してインストールしました。Gitoliteはauthorized_keysファイルを更新していません

Gitoliteを正常にインストールし、gitolite-adminリポジトリにアクセスし、設定して新しいキーを配置しました。 I commitテッドとpush ED私は再び新しいリポジトリまたはgitolite-adminリポジトリにアクセスすることができないことに気づいまで、すべてが大丈夫だったとき...

私は、ssh経由で自分のサーバーに入ってgitoliteが公共のすべてを削除したことに気づきましたキーはauthorized_keysにありますが、SSHで設定した私のデフォルトのSSHキーは例外です。

フックが伝播していると、すべてが正常に見える場合、私がチェック

- Gitoliteは、新しいリポジトリを作成し、新しいgitolite.conf

をコンパイルし、私は私が逃したかわからない - 何かが間違っているが、私はアイデアを持っていませんそれは何ですか。

私が最後に見たのは、ファイル~/.gitolite/src/sshkeys-lintauthorized_keysファイルを管理していますが、シェルスクリプトの言語をよく理解していません。

+0

'authorized_keys'ファイルに権限の問題がある可能性がありますか? – Nic

+0

'〜/ .gitolite/src/gl-setup-authkeys --batch〜/ .gitolite/keydir'を実行すると、' authorizad_keys'はgitユーザに600のパーミッションを持っています。 .. authorized_keys'が更新され、すべてが問題です。私はそれをしなければならず、自動的にトリガーしません。 – Rafael

+0

@meleeは文法チェックのおかげです。私はより良い私の質問/回答 – Rafael

答えて

6

コミットすると、(あなたがコミットしているマシンの)コンソールに次のエラーが表示されますか?

remote: FIND: Parameter format not correct 
remote: FIND: Parameter format not correct 

はいの場合、問題はfind.exeです。

Windowsには\ windows \ system32フォルダにfind.exeがあり、cygwinには独自のfind.exeがあります。通常、\ windows \ system32は環境変数 'path'の最初に来ます。

Gitoliteはスクリプトで 'find'を使用しますが、残念ながらcywinからではなくwindowsからのfind.exeが実行されます。

問題を解決するには、環境変数タブに移動し、cygwinのbinディレクトリをsystem32の前に追加します。

これ以降、「authorized_keysファイルがコミット時にクリアされる」という問題に直面することはありません。

私はgitoliteをミラーリングしているWindows server 2008マシンで正常に動作しています。 詳細情報 Windowsサービスとしてsshdをインストールしたので、cygwinパスはwindowsパスよりも低い優先度を与えられます。

+0

私は – Rafael

+0

がある最初のチャンスで私は同じ問題が発生していることを確認します..しかし、パスにcygwinを追加することは私のために働いていません。この修正により再起動が必要な可能性がありますか?別物..'c:\ cygwin \ bin \ find.exe'をパスに追加するほうが賢明ではないでしょうか?そうすれば、システム機能を危険にさらすことはありません。 – NickSuperb

+0

ありがとう、それは私のために働いた! Gitoliteは、CygwinののSSHDデーモン/サービス(から呼び出された場合、それは、間違ったFIND.EXEを使用しているため、authorized_keysにファイルを更新することができませんでしたが、なぜ?これは修正されるべきである - それは完全に働いたCygwinのコマンドラインから呼び出された場合)。 @ニック:はい、それはサービス(またはサービスのユーザーアカウント?)PATHが変更されたことを発見するために、再起動する必要があるようだ....(私はXPで少なくとも持っていた) – Bjarke

関連する問題