2

gitリポジトリを起動して実行し、リモートのubuntu8.04サーバーにgitとgitosisをインストールしようとしています。また、ローカルのubuntu10.04マシンでgitを実行しています。

すべてを機能させるために多くのことを試みた後、私はsshキーを機能させることができました。私がタイプするとき:

ssh git@myserver.com

それは戻ります:

チャネル0でPTY割り当て要求が失敗しました

エラー:gitosis.serve.main:環境にSSH_ORIGINAL_COMMANDが必要です。

123.456.789.1への接続が閉じられました。

私が理解している限り、これはサーバーへの接続に成功し、sshキーが受け入れられたことを意味しますが、コマンドを取得しなかったため、接続が閉じられます。

リポジトリを取得しようとすると:

sudo git clone git@myserver.com:gitosis-admin.git

それは戻ります:

/home/git/repositories/gitosis-admin/.git/にある空のGitリポジトリを初期化しました

git@myserver.comのパスワード:

問題は、パスワードまたはフレーズが設定されておらず、空のパスワード、サーバーパスワード、またはローカルのマシンパスワードを受け入れないことです。sshキー(パスフレーズなし)を受け入れてダウンロードを開始する必要があるため、パスワードを要求するべきではないことを理解しています。

この時点から、リモートリポジトリをローカルマシンに取得してgitの使用を開始する方法がわかりません。誰かが私を正しい方向に向けてくれることを願っています。

4

1 に答える 1

0

認証は最初のテストで機能しました(ssh git@server)。認証が失敗した場合(またはプロンプトで停止した場合)、gitosisからのメッセージは表示されませんでした。報告された警告とエラーは、 gitに内部でsshを使用させる代わりに、通常の非コマンドsshを実行しようとすると予想されます 。

ただし、少し異なる環境(sudoの下)でクローンを作成しました。問題はおそらく、sudoの下のsshが、 sudo以外のテストsshが使用していた秘密鍵を使用していないことです。私のテストでは、HOMEが通常のユーザーのホームディレクトリを指している場合でも、常にからのファイルを使用します。sudo ssh~root/.ssh

ソリューション:

  • リポジトリのクローンを作成するためのsudoの使用は控えてください。
  • ルートとして別のSSHキーペアを生成し、そのパブリックコンポーネントをgitosis構成に追加します。

もう1つの方法がありますが、それは醜い方法です。それは私にはとても悪い考えのように思われるので、私はそれについてのヒントを残すだけです。ルートが他のユーザーの秘密鍵ファイルを読み取る能力を悪用する可能性があります(パスフレーズがある場合は、それを入力する必要があります)。

于 2010-09-10T03:42:48.107 に答える