ここで説明されているように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
にいくつかのパラメータを追加する必要がありますか?
将来この質問を見つけた人への通知として、gitosisはgitコミュニティの大多数によって非推奨であると宣言されており、その作者によって放棄されているように見えることを指摘したいと思います。
Gitolite は後継者になり、あらゆる点で優れていることに満場一致で同意しています。最も重要なのは、使いやすさ、トラブルシューティング、およびデバッグです。
ガイドから数歩逃したようです。 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
ステップ5では、キーを〜/ .ssh/authorized_keysファイルに自分で追加する必要はありません... gitosis-initが自動的に追加します。
また、クライアント側では、〜/ .ssh/configファイルの設定は次のようになります。
Host myserver.com.ua
User git
Port 22
IdentityFile ~/.ssh/id_dsa
サーバー上のgitユーザーに対してパスワードなしのログインを実行する必要があるためです。