プロジェクトをコミットして変更するために、GITサーバーを設定し、開発者がユーザー名とパスワードを使用してログインできるようにしたいと思います。プロジェクトへの開発者のアクセスも管理する必要があります(これにはgitoliteを使用する必要があると思います)。
どうやってやるの?
開発者ごとにユーザー名とパスワードを設定できるので、SVNに慣れています。これにより、sshキーを生成してサーバーに配置しなくても、リポジトリに簡単にアクセスできます。
ありがとう
おそらくあなたはこれに気づいていませんが、Gitは分散型VCSです。それはあなたの理解に不可欠です。 OTOHSVNとCVSは一元化されています。それでもGitに中央リポジトリを置くことができます。その場合、ユーザーはSSHまたはHTTPアクセスを使用してそのサーバーにログインできる必要があります。それを調べてください。一般的に、Gitはサーバーの認証に依存します。
したがって、一元的に使用するためにDebianまたはUbuntuサーバーでgitリポジトリを作成するには:
# apt-get install git
# cd /var/git
# git init --bare myreponame.git
# adduser <username> as needed
この時点で、空のレポがあります。デスクトップのDebianまたはUbuntuにクローンを作成するには:
SSH接続の場合:ssh keygenを検索し、サーバーへのパスワードなしの接続を設定します-keygenと共有は2つのコマンドのみです。
リポジトリを複製するには:
$ git clone <server>:/var/git/myreponame.git
$ cd myreponame
これで、ファイルとディレクトリを追加できます... git addとgit commitを使用した場合は、gitプッシュを使用して中央リポジトリにコミットをプッシュできます。
gitolite
は公開鍵認証を使用します。FWIWでは、全員の鍵ペアを生成する必要はありません。彼らに公開鍵を尋ねるだけです。
gitolite
の構成は単なる別のリポジトリであり、アクセスを許可し、それに応じて公開鍵を追加する必要があります。
プロジェクトをコミットして変更するために、GITサーバーを設定し、開発者がユーザー名とパスワードを使用してログインできるようにしたいと思います。プロジェクトへの開発者のアクセスも管理する必要があります
GitLab CommunityEditionの使用をお勧めします。それはあなたが必要とするすべての機能とより多くを持っているので。
開発者ごとにユーザー名とパスワードを設定できるので、SVNに慣れています。これにより、sshキーを生成してサーバーに配置しなくても、リポジトリに簡単にアクセスできます。
実際にはsshキーはとても快適です。なぜなら、クローン/プル/プッシュ/などしたいときに毎回ログイン/パスワードを入力する必要がないからです。
Gitlabでは、ログイン/パスワードやsshキーを使用できます。
SSH経由のパスワード認証とGitolite経由の承認が必要な場合は、簡単に行うことができます。
基本的には、ユーザーごとにアカウントを作成してグループに入れるか、次のMatch
をすべてのユーザーに適用して、実際にログインできるはずのユーザーに例外を設けます。例すべてのgitユーザーをグループgit-users
に詰め込み、ホスト名はgit
、Gitoliteはユーザーgit
として動作し、Gitoliteは/opt/gitolite
にインストールされていると仮定します。何かが正しくない場合は、指示を適応させるだけです
/etc/ssh/sshd_config
では
Match Group git-users
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
PermitTTY no
ForceCommand Sudo -u git -H /opt/gitolite/src/gitolite-Shell $USER
ユーザーが接続した場合にGitoliteに制御を与え、それがどのユーザーであるかを伝えます。
そして、このSudo
コマンドはパスワードなしで機能しますvisudo
そしてsudoersファイルに追加します
Defaults!/opt/gitolite/src/gitolite-Shell env_keep+=SSH_CONNECTION
Defaults!/opt/gitolite/src/gitolite-Shell env_keep+=SSH_ORIGINAL_COMMAND
gitoliteが適切に動作するために必要なSSH_CONNECTION
およびSSH_ORIGINAL_COMMAND
環境変数を転送し、
%git-users git = (git) NOPASSWD: /opt/gitolite/src/gitolite-Shell
これは、グループgit-users
内のすべてのユーザーが、パスワードを指定せずにgit
という名前のホストでユーザーgit
としてコマンド/opt/gitolite/src/gitolite-Shell
を実行できるようにするためです。