web-dev-qa-db-ja.com

https git cloneとssh git cloneの違い

こんにちは私はしばらくgitを使用していますが、エンタープライズgitは初めてです。ここに私がtest-repoで何をしたかがあります。SSHキーペアを作成し、公開キーをデプロイキーとしてテストリポジトリに追加しました。 sshhttpsからtest-repoのクローンを作成できるようになりましたが、誰かをコラボレーターとして追加すると、httpsからはリポジトリをクローンできますが、sshからはリポジトリをクローンできません

ssh-keygen -b 4096 -t rsa -f example_rsa -P "" -C ""

$ ls
example_rsa     example_rsa.pub

$ git clone [email protected]:star/test-repo.git
Cloning into 'test-repo'...
Warning: Permanently added the ECDSA Host key for IP address '10.0.1.100' to the list of known hosts.
warning: You appear to have cloned an empty repository.

Sshを介してアクセスを許可した後でも、同じgitリポジトリにユーザーがアクセスすることはできませんが、ユーザーはhttpsを使用してリポジトリのgitクローンを作成できます。

git clone [email protected]:star/test-repo.git
Cloning into 'test-repo'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

git clone https://git.example-private.com/star/test-repo.git
Cloning into 'test-repo'...
warning: You appear to have cloned an empty repository.
2
Shailesh Sutar

Gitはクライアント/サーバー通信にいくつかのプロトコルを使用します。

  • http
  • https
  • ssh
  • git

Gitサーバーでsshを使用する場合は、リポジトリを操作する共同編集者に関連するsshアクセスを提供する必要があります。管理を容易にするためのソリューションはたくさんあります-gitlab(これにもGUIがあります)、gitolite、その他多数。 Gitにはgit-Shell-新しく作成したユーザーに設定した場合、そのユーザーはgitでのみ作業でき、サーバーへのsshではできません。 sshを使用する方が安全であり、エンタープライズ環境にはより良いソリューション(私の意見)です。

転送プロトコルにhttpsを使用すると、httpsの利点(または制限)が得られます。これは、gitサーバー(cgitなど)のWebインターフェイスがある場合に最も一般的に使用され、ユーザーはリポジトリを複製できます(ただし、プッシュにはできません)。

this -Gitで使用されるプロトコルに関する詳細な説明をご覧ください。

2
13dimitar