Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Gitoliteのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Gitolite
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:バージョン管理システム]] [[en:Gitolite]] [https://github.com/sitaramc/gitolite/wiki/ Gitolite] を使うことで複数のユーザーが扱う Git リポジトリを簡単に安全にホストすることができます。 == インストール == {{Pkg|gitolite}} パッケージを[[インストール]]してください。 == 設定 == gitolite をインストールすると自動的に ''gitolite'' ユーザーがシステムに追加され、ホームディレクトリ {{ic|/var/lib/gitolite}} が作られます。 === SSH による管理者アクセス === 管理者アクセスできるように、SSH 公開鍵を {{ic|/var/lib/gitolite/''username''.pub}} に追加してください ({{ic|username}} はあなたのユーザー名に置き換えて下さい): # install -o gitolite -g gitolite ~/.ssh/id_rsa.pub /var/lib/gitolite/''username''.pub そして ''gitolite'' ユーザーを使って Gitolite のセットアップスクリプトを実行します: # su - gitolite $ gitolite setup -pk ''username''.pub これで gitolite-admin の keydir に公開鍵が配置され、あなたのユーザー名で gitolite-admin リポジトリに読み書きアクセスできるようになります。 コピーした SSH 公開鍵を削除して ''gitolite'' ユーザーシェルを終了してください: $ rm ''username''.pub $ exit あなたのユーザーを使って問題が無いか確認することが可能です: {{hc|$ ssh gitolite@''hostname'' info| hello ''username'', this is gitolite@''hostname'' running gitolite3 v3.6.2 on git 2.3.3 R W gitolite-admin R W testing }} リポジトリやユーザーを直接 ''gitolite'' としてサーバーに追加してはいけません。特別な ''gitolite-admin'' リポジトリを複製することでサーバーを管理します: $ git clone gitolite@''hostname'':gitolite-admin 詳しくは [https://github.com/sitaramc/gitolite/ Gitolite] を参照してください。 === Apache による http(s) アクセスの追加 (ベーシック認証) === suEXEC ラッパースクリプトを作成する必要があります。suEXEC のセキュリティ要件を満たすために、スクリプトとディレクトリの所有者は {{ic|gitolite:gitolite}} である必要があり、{{ic|/srv/http}} 以下に配置しなくてはなりません。ここでは例として、{{ic|/srv/http/git/cgi-bin}} ディレクトリを作成します: # install -o gitolite -g gitolite -d /srv/http/git/cgi-bin gitolite シェルの suEXEC ラッパーを作成してください。以下の例では、{{ic|/srv/http/git/cgi-bin/gitolite-suexec-wrapper}} として保存しています。 {{hc|/srv/http/git/cgi-bin/gitolite-suexec-wrapper|2= #!/usr/bin/bash # # suEXEC wrapper for gitolite-shell # export GIT_PROJECT_ROOT=/var/lib/gitolite/repositories export GITOLITE_HTTP_HOME=/var/lib/gitolite exec /usr/lib/gitolite/gitolite-shell }} ラッパーに実行可能属性を付与して所有者を {{ic|gitolite:gitolite}} に変更: # chown gitolite:gitolite /srv/http/git/cgi-bin/gitolite-suexec-wrapper # chmod 0755 /srv/http/git/cgi-bin/gitolite-suexec-wrapper 空のパスワードデータベースファイルを作成、所有者は {{ic|gitolite:http}}: # install -o gitolite -g http -m 0640 /dev/null /srv/http/git/htpasswd Apache の basic 認証は ssh とは別の仕組みなので、証明書が別に必要になります。{{ic|htpasswd}} を使ってウェブユーザーを作成: # htpasswd /srv/http/git/htpasswd ''username'' 以下を Apache の vhost 設定に追加してください: {{bc| SuexecUserGroup gitolite gitolite ScriptAlias /git/ /srv/http/git/cgi-bin/gitolite-suexec-wrapper/ <Directory /srv/http/git/cgi-bin> Require all granted </Directory> <Location /git> AuthType Basic AuthName "Git Access" AuthBasicProvider file AuthUserFile /srv/http/git/htpasswd Require valid-user </Location> }} {{ic|httpd.service}} を再起動してください。 最後に、前述の gitolite-admin リポジトリの中にある、{{ic|conf/gitolite.conf}} を編集して http でアクセスして変更をプッシュしたい全てのリポジトリに {{ic|1=R = daemon}} アクセスルールを追加してください。 == ユーザーの追加 == === ssh ユーザー === アクセス権を与えるユーザーに、あなたに公開鍵を送るよう頼んでください。次のコマンドで ssh の鍵ペアを生成できます: $ ssh-keygen それぞれの公開鍵をユーザーの名前に従ってリネームし、.pub 拡張子を付けてください。例えば itaram.pub や john-smith.pub ような形です。ピリオドやアンダースコアも利用することができます。 すべての *.pub ファイルを 複製した gitolite-admin リポジトリの keydir の中にコピーしてください。サブディレクトリを使って鍵を整理することもできます。 設定ファイル (複製した gitolite-admin リポジトリの中の conf/gitolite.conf) を編集してください。設定項目や文法などの詳細は gitolite.conf のドキュメント (http://sitaramc.github.com/gitolite/admin.html#conf) を見てください。必要に応じて新しいリポジトリを追加したり、新しいユーザーを追加しパーミッションを与えたりしてください。ユーザーの名前は鍵ファイル名から .pub 拡張子を除いたものと同一にしてください。 $ nano conf/gitolite.conf 変更をコミットしプッシュしてください: $ git commit -a $ git push === http(s) ユーザー === http(s) のユーザー管理はシングルユーザーセットアップに適しています。新しいユーザーを追加したり、存在するユーザーのパスワードを変更するには: # htpasswd /srv/http/git/htpasswd ''username'' == Gitosis ライクな ssh ユーザー名 == {{ic|username@server1}} と {{ic|username@server2}} のような同じログインのユーザーを区別したい場合は次を実行してください ({{Pkg|gitolite}} 3.04-1 でテストしています): * {{ic|/usr/lib/gitolite/triggers/post-compile/ssh-authkeys}} を開き $user =~ s/(\@[^.]+)?\.pub$//; # baz.pub, baz@home.pub -> baz を $user =~ s/\.pub$//; # baz@home.pub -> baz@home で置き換えてください。 * authorized_keys ファイルを更新してください。(例えば ''gitolite-admin'' リポジトリにプッシュしてください) == トラブルシューティング == gitolite のアカウントでログインできない場合、あなたの ssh の設定によってアカウントがロックされているかもしれません。 [http://arlimus.github.io/articles/usepam/ SSH and locked users Article] や [http://unix.stackexchange.com/questions/193066/how-to-unlock-account-for-public-key-ssh-authorization-but-not-for-password-aut Unix & Linux StackExchange - How to unlock account for public key ssh authorization, but not for password authorization] に述べられているような SSH のセキュリティの強化がこの動作を引き起こすことがあります。 この問題を解決するために {{ic|sshd_config}} で PAM を許可するか、アカウントをアンロックしてください: # usermod -p '*' gitolite {{hc|# nano /etc/passwd| ... gitolite:*:16199:0:99999:7::: ...}} {{Warning|空のパスワードを持つアカウントを {{ic|passwd -u}} した状態にしておかないでください。パスワード無しでログインを許可することになります。}} == See also == * [http://sitaramc.github.com/gitolite/index.html Gitolite Site] * [http://arlimus.github.io/articles/usepam/ SSH and locked users Article] * [http://unix.stackexchange.com/questions/193066/how-to-unlock-account-for-public-key-ssh-authorization-but-not-for-password-aut Unix & Linux StackExchange - How to unlock account for public key ssh authorization, but not for password authorization]
このページで使用されているテンプレート:
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Warning
(
ソースを閲覧
)
Gitolite
に戻る。
検索
検索
Gitoliteのソースを表示
話題を追加