web-dev-qa-db-ja.com

ユーザー名とパスワード認証を備えたGITサーバー

プロジェクトをコミットして変更するために、GITサーバーを設定し、開発者がユーザー名とパスワードを使用してログインできるようにしたいと思います。プロジェクトへの開発者のアクセスも管理する必要があります(これにはgitoliteを使用する必要があると思います)。

どうやってやるの?

開発者ごとにユーザー名とパスワードを設定できるので、SVNに慣れています。これにより、sshキーを生成してサーバーに配置しなくても、リポジトリに簡単にアクセスできます。

ありがとう

3
Giorgio

おそらくあなたはこれに気づいていませんが、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プッシュを使用して中央リポジトリにコミットをプッシュできます。

  • ベアでないリポジトリがあります。これを読んで、標準のGitリファレンスを使用する必要があります。Googleだけです。
  • 警告「共有リポジトリ」は、名前から考えるものではありません。
2
John P. Fisher

gitoliteは公開鍵認証を使用します。FWIWでは、全員の鍵ペアを生成する必要はありません。彼らに公開鍵を尋ねるだけです。

gitoliteの構成は単なる別のリポジトリであり、アクセスを許可し、それに応じて公開鍵を追加する必要があります。

0
dawud

プロジェクトをコミットして変更するために、GITサーバーを設定し、開発者がユーザー名とパスワードを使用してログインできるようにしたいと思います。プロジェクトへの開発者のアクセスも管理する必要があります

GitLab CommunityEditionの使用をお勧めします。それはあなたが必要とするすべての機能とより多くを持っているので。

開発者ごとにユーザー名とパスワードを設定できるので、SVNに慣れています。これにより、sshキーを生成してサーバーに配置しなくても、リポジトリに簡単にアクセスできます。

実際にはsshキーはとても快適です。なぜなら、クローン/プル/プッシュ/などしたいときに毎回ログイン/パスワードを入力する必要がないからです。

Gitlabでは、ログイン/パスワードやsshキーを使用できます。

0
ALex_hha

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を実行できるようにするためです。

0
Vampire