web-dev-qa-db-ja.com

gitosis&sshを使用してgentooサーバーにgitリポジトリをセットアップします

ここで説明されているようにgitとgitosisをインストールしました このガイド これが私が取ったステップです:

サーバー:Gentoo
クライアント:MAC OS X

1)git install

emerge dev-util/git

2)gitosisインストール

cd ~/src
git clone git://eagain.net/gitosis.git
cd gitosis
python setup.py install

3)追加されたgitユーザー

adduser --system --Shell /bin/sh --comment 'git version control' --no-user-group --home-dir /home/git git

/etc/shadowで今:

git:!:14665::::::

4)ローカルコンピュータ(Mac OS X)の場合(ローカルログインはipx、サーバーログインはエキスパート

ssh-keygen -t dsa

2つのファイルを取得しました:

~/.ssh/id_dsa.pub
~/.ssh/id_dsa

5)id_dsa.pubをサーバーにコピーしました

~/.ssh/id_dsa.pub

ファイル~/.ssh/id_dsa.pubからファイル~/.ssh/authorized_keysにコンテンツを追加しました

cp ~/.ssh/id_dsa.pub /tmp/id_dsa.pub
Sudo -H -u git gitosis-init < /tmp/id_rsa.pub
Sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

6)/etc/ssh/sshd_configに2つのパラメータを追加しました

RSAAuthentication yes
PubkeyAuthentication yes

フルsshd_config

Protocol 2
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
UsePAM yes
PrintMotd no
PrintLastLog no
Subsystem   sftp   /usr/lib64/misc/sftp-server

7)ファイル~/.ssh/configのローカル設定:

Host myserver.com.ua
User expert
Port 22
IdentityFile ~/.ssh/id_dsa

8)テスト済み:

ssh [email protected]

完了!

9)次のステップ。そこに問題があります

git clone [email protected]:gitosis-admin.git
cd gitosis-admin

SSHはユーザーのパスワードを要求しましたgit。 sshでユーザーgitとしてログインできるようにする必要があるのはなぜですか? gitユーザーはパスワードを持っていません。私が作成したsshキーは、ユーザーexpert用です。これはどのように機能する必要がありますか?

sshd_configにいくつかのパラメータを追加する必要がありますか?

3
user28373

将来この質問を見つけた人への通知として、gitosisはgitコミュニティの大多数によって非推奨であると宣言されており、その作者によって放棄されているように見えることを指摘したいと思います。

Gitolite は後継者になり、あらゆる点で優れていることに満場一致で同意しています。最も重要なのは、使いやすさ、トラブルシューティング、およびデバッグです。

3
Arrowmaster

ガイドから数歩逃したようです。 sshキーを設定した後、次のように表示されます。

次に、gitユーザーのホームディレクトリに魔法をかけ、公開SSHキーを承認済みキーのリストに追加するコマンドを実行します。

Sudo -H -u git gitosis-init < /tmp/id_rsa.pub

そして...

念のため、更新後のフックが実行可能に設定されていることを確認しましょう。時々設定されないところを見てきました(古いsetuptoolsの問題):

Sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

次に、問題が発生した手順を実行します。

git clone git@YOUR_SERVER_HOSTNAME:gitosis-admin.git
cd gitosis-admin
0
heavyd

ステップ5では、キーを〜/ .ssh/authorized_keysファイルに自分で追加する必要はありません... gitosis-initが自動的に追加します。

また、クライアント側では、〜/ .ssh/configファイルの設定は次のようになります。

Host myserver.com.ua
User git
Port 22
IdentityFile ~/.ssh/id_dsa

サーバー上のgitユーザーに対してパスワードなしのログインを実行する必要があるためです。

0
kartikmohta