2012-02-18 18 views
4

this tutorialを使用して私のサーバーにgitoliteをインストールしました。これは「非ルート」メソッドに該当します。gitolite:sshで接続できます。クローンできません

gitolite-adminをクライアントに複製しようとすると失敗します。私は、このエラーメッセージが表示されます:

また
git clone [email protected]:gitolite-admin 
Cloning into gitolite-admin... 
fatal: The remote end hung up unexpectedly 

git clone ssh://[email protected]:gitolite-admin 
Cloning into gitolite0admin... 
Using username "git-upload-pack 'gitolite". 
fatal: The remote end hung up unexpectedly 

私もレポ名の最後に.gitを追加しようとした、と私はまたrepositories/gitolite-adminを追加しようとしている(中にエラーが提案してきました上記のリンク先のチュートリアル)と、これらの両方の組み合わせと機能しないものがあります。私は私の興味をそそる "ユーザー名の使用"ビットに関するGoogle上の結果を見つけることができません。

私はマシンにssh経由で接続でき、私はRとW gitolite-adminにアクセスできることを伝えています。だから、SSHは動作していますか?

答えて

7

は、SSH parts about gitoliteを確認:あなたはsshを通じてserver.comに接続することができるという事実は、唯一の意味:

  • をあなたのSSHキーはキーはありませんがある」gitoliteに関連していないことを[email protected]~/.ssh/authorized_keys
  • に登録されています「command=」オプションは、「受信ユーザーが何を求めているかに関係なく、強制的にこのコマンドを実行する」という意味です)。
    あなたは対話型セッションに参加していますので、好きなコマンドを実行することができます。私は、サードパーティのチュートリアルについては全く好きではない何

それはgitのユーザーとssh root以外のユーザー

ため同じ名前を使用しようとすることをあなたは別々に維持する必要がありますされています。

  • アカウントないroot以外のユーザー(、トンへの管理者権限を持つgitoliteにリンクされますちょうどSSHキー、 server.com、なしのsshで
    • gitログを直接に:2つの使用モードの混同を避けるため、正確に、ないgitolite 'をgit' をする必要があり、彼gitolite-adminレポ)
    • ホスティングアカウント、ここでは):gitコマンドを実行するためにインタラクティブなセッションが必要です(サーバー上のgitoliteリポジトリを複製してgitolite/src/gl-system-installを実行するなど)
    • ssh [email protected]~/.ssh/id_rsa(.pub) publ
      「gitolite」真アカウントではありません:gitoliteのものであること、gitolite-adminレポのクローンを作成するためにあなたを承認し、レポ再び

がいることをプッシュバックし、ICおよび秘密鍵、server.comでコマンドを実行する権限を与えられた名前だけが 'git'(実際の "ホスティングアカウント"、 "gitサービスとreposのホスティング"のように)
他のすべてのgitユーザーはserver.comのgitコマンドをgitとして実行します。
そして、その特定のユーザ(gitolite)は、「利用者の権利をクローニングすることを許可し、変更し、バックgitolite-adminレポプッシュするために、gitoliteインストール時に権限を設定して、forced-command mechanismを通じて認証層をgitoliteにリンクされます。同じ名前を持つ2つの名前にしようと


(彼らはgitolite-admin一つである特定のgitリポジトリにアクセスすることができませんそれはあなたが追加する他のすべてのSSH Gitのユーザーに比べてその唯一の特殊性です)トラブルを求めているだけです。

私は、公開鍵/秘密鍵のデフォルトの命名規則を使用して好きではないので、私は意図したユーザーの名前とそれらのキーを定義し、クライアントに好む:

~/.ssh/gitolite.pub 
~/.ssh/gitolite 

その後、私は設定を定義しますファイル:~/.ssh/configその中で:

host gitolite 
    user git 
    hostname server.com 
    identityfile ~/.ssh/gitolite 

(ここでは、ユーザ注意:常にgit)を
その後、私は私のgitolite-aminレポのクローンを作成することができます

後世のために
git clone gitolite:gitolite-admin 
# modify locally 
# git add -A ; git commit -m "my modifs" 
git push origin master 
+0

私が使用しているサーバーには、鍵ペアの認証でログオンしているユーザーがいないため、使用している鍵は誰の〜/ .ssh/authorized_keysにも追加されていません。 gitoliteのようにサーバに追加したユーザーは〜/ .ssh/authorized_keysを持っています。そのファイルに私の公開鍵、私のgitoliteユーザ名(steve)があります。コマンドセクション。さらに、gitoliteユーザーを使用して私のサーバーに接続することは、対話型セッションではありません。それは、どのリポジトリが利用可能であるかを私に伝え、すぐに私をログアウトさせます。 – steve

+0

@steve:うまく見えます。あなたはyurクライアント側で〜/ .ssh/configファイルを試してみることができますか? 'git clone gitolite:gitolite-admin'を試してみませんか? – VonC

+0

OKを(ちょうど私がまだアカウントとして 'gitolite'を考慮することが不安を見つけるにもかかわらず、ユーザーgitolite''を使用してユーザーのgitを置き換える) - ここに私の〜/ .ssh/configに ホストserver.com \tユーザーgitolite から行をです\tホスト名server.com \t PreferredAuthentications publickey \t IdentityFile "C:¥Users¥user name¥.ssh¥id_rsa" < - このキーは、別の名前を持っていても、サーバー上の公開キーに対応します。 'git clone gitolite:gitolite-admin'の意味を正確には分かりませんが、私はそれを実行しました。ホストは存在せず、接続を開くことができません。 それから、上記と同じコマンドを実行しましたが、私はまだ同じエラーが発生しています。 – steve

1

、修正がGIT_SSHがTortoisePlink.exeのにないセットであることを確認することです。動揺はそれを使用することはできません。

関連する問題