Gitサーバの構築
4611 ワード
コメント:
本文は廖雪峰先生のブログGitチュートリアルを参考にします.そのブログに基づいて学習と記録を行い、無私な共有に感謝し、原文を参照することを歓迎します.
インテリジェントポイント を作成新規ユーザホームディレクトリ下 修正
Gitサーバの構築
Gitリモートウェアハウスは本質的にローカルウェアハウスと何の違いもありませんが、永続的なオンラインサービスを提供しています.インストールgit: gitサービスを実行するgitユーザを作成
使用証明書登録の作成 証明書登録を作成するには、
登録が必要なすべてのユーザの公開鍵、すなわちユーザの
デフォルトで新しく作成されたgitユーザーホームディレクトリは、
ホームディレクトリの下にデフォルトで生成されたファイルは、
同時に初期化Git倉庫: Git倉庫としてディレクトリを選択し、
Gitは空の倉庫を作成し、ワークスペースがなく、共有にのみ使用されるため、ユーザーが直接サーバにログインしてワークスペースを変更することはできません.
サーバGitウェアハウスは通常ディレクトリの所有者を gitユーザー無効 セキュリティ上の考慮により、新規の
に変更
gitでのログインは許可されません
gitユーザーは、リモートウェアハウスをクローンします.
リモート・ウェアハウス
クローン・リモート・ウェアハウスにアクセスするサーバ名を設定できます.のように
空のgitウェアハウスをクローンし、ウェアハウスの内容を表示するよう求められます.
その後、このリモートライブラリを使用してgitの操作、同期などを行うことができます.
公開鍵の管理
以上のように、簡単なgitサーバの構築が完了しました.その後、他の倉庫、他のユーザーの公開鍵などを追加して管理することができます.公開鍵パス位置: ただし、大規模または複数の人が使用および管理するgitサーバでは、Gitosisを使用して公開鍵を管理することができる.
gitサーバウェアハウスの権限管理
git自体は管理
しかし、Gitは関連するフックを提供し、これによって一連のスクリプトを作成して倉庫への提出などの操作を制御し、制御権限を実現することができる.Gitoliteは、管理権限を提供するツールです.
本文は廖雪峰先生のブログGitチュートリアルを参考にします.そのブログに基づいて学習と記録を行い、無私な共有に感謝し、原文を参照することを歓迎します.
インテリジェントポイント
apt-get install git
gitをインストールし、ユーザーadduser username
.shh/authorized_keys
Gitリモートウェアハウスに接続されたユーザを管理する秘密鍵を格納する.git init --bare reponame.git
空のリモート・ウェアハウスを作成し、このリモート・ウェアハウスが存在するディレクトリおよびサブディレクトリの所有者を新規ユーザーに設定しますchown -R username:usernameGroup sample.git/
/etc/passwd
ファイル、ユーザーshell
端末ログインを無効にします.Gitサーバの構築
Gitリモートウェアハウスは本質的にローカルウェアハウスと何の違いもありませんが、永続的なオンラインサービスを提供しています.
Ubuntu
にGitサーバを構築する方法を以下に示します.$ sudo apt-get install git
$ sudo adduser git
使用
passwd git
gitユーザーのパスワードを変更します.github
またはgitee
を使用する場合、公開鍵をリモートサーバにアップロードするのと同様に、Gitサーバは、登録する必要があるユーザ側の公開鍵(ユーザが作成したid_rsa.pub
)を収集する必要がある.登録が必要なすべてのユーザの公開鍵、すなわちユーザの
id_rsa.pub
ファイルを収集する.公開鍵を/home/git/.ssh/authorized_keys
ファイルにインポートし、1行1つ.デフォルトで新しく作成されたgitユーザーホームディレクトリは、
.ssh
非表示ディレクトリがありません.ディレクトリとファイルを手動で作成できます.ホームディレクトリの下にデフォルトで生成されたファイルは、
/etc/skel
ディレクトリの内容によって決定されます(自己検証可能).同時に
Ubuntu
の下でユーザーを新設し、ホームディレクトリの下の
などのディレクトリは新しいユーザーを使用してubuntu
デスクトップにログインしてから、デスクトップ、画像、ドキュメント、ダウンロード、音楽などのディレクトリを生成する必要があります./srv/sample.git
と仮定し、/src
ディレクトリの下にコマンドを入力$ sudo git init --bare sample.git
[sudo] git :
Git /srv/sample.git/
Gitは空の倉庫を作成し、ワークスペースがなく、共有にのみ使用されるため、ユーザーが直接サーバにログインしてワークスペースを変更することはできません.
サーバGitウェアハウスは通常
.git
で終了します.git
に変更します.$ sudo chown -R git:git sample.git/
shell
ログインgit
ユーザはshell
にログインすることを許可しない./etc/passwd
ファイル設定を編集します.passwd
ファイルを開くと、次のように見つかります.git:x:1001:1002:,,,:/home/git:/bin/bash
に変更
git:x:1001:1002:,,,:/home/git:/usr/bin/git-shell
gitでのログインは許可されません
$ su git
:
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
su
コマンドはログインユーザを切り替えるsudo
root管理者権限の取得、コマンドの実行su [username]
指定したユーザに切り替え、環境変数を変更しないsu - [username]
環境変数を指定ユーザに切り替えて変更(共通)gitユーザーは、
ssh
でgitを正常に使用できますが、shell
にログインできません.git
ユーザーに指定されたgit-shell
は、ログインするたびに自動的に終了するためです.リモート・ウェアハウス
git clone
を/srv/sample.git/
でクローン化できます.クローン・リモート・ウェアハウスにアクセスするサーバ名を設定できます.のように
gitsever
はローカルhostsに設定され、ipはGitサーバのアドレスである.$ git clone git@gitsever:/srv/sample.git
Cloning into 'sample'...
The authenticity of host 'gitsever (192.168.104.237)' can't be established.
ECDSA key fingerprint is SHA256:SYG7vL********************y597FA.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitsever,192.168.104.237' (ECDSA) to the list of known hosts.
warning: You appear to have cloned an empty repository.
空のgitウェアハウスをクローンし、ウェアハウスの内容を表示するよう求められます.
$ cd sample/
/sample (master)$ ls -al
total 4
drwxr-xr-x 1 win7hostsver 197121 0 May 4 14:29 .
drwxr-xr-x 1 win7hostsver 197121 0 May 4 14:29 ..
drwxr-xr-x 1 win7hostsver 197121 0 May 4 14:29 .git
その後、このリモートライブラリを使用してgitの操作、同期などを行うことができます.
公開鍵の管理
以上のように、簡単なgitサーバの構築が完了しました.その後、他の倉庫、他のユーザーの公開鍵などを追加して管理することができます.
/home/git/.ssh/authorized_keys
gitサーバウェアハウスの権限管理
git自体は管理
linux
コードのために開発されているため、オープンソース精神を重視し、権限制御をサポートしていない.しかし、Gitは関連するフックを提供し、これによって一連のスクリプトを作成して倉庫への提出などの操作を制御し、制御権限を実現することができる.Gitoliteは、管理権限を提供するツールです.