使用Git配置ssh

时间:2011-06-17 10:23:56

标签: git configuration ssh

我做了以下,

  1. 为Git
  2. 创建了一个帐户
  3. 创建裸存储库
  4. 使用ssh-keygen -t rsa命令我为两个帐户创建公钥(一个是git帐户),K
  5. 在.ssh目录(git帐户)的authorized_keys下添加了公钥(位于/home/user/.ssh/id_rsa.pub)。
  6. 通过两个帐户克隆存储库
  7. Git帐户能够将更改推送到服务器(它要求passpharse)
  8. 对于另一个帐户,它不允许推送更改,而不是要求passpharse询问密码。
  9. 可能是什么问题?

    这是输出:

    git push origin master
    Offending key for IP in /home/user01/.ssh/known_hosts:15
    Matching host key in /home/user01/.ssh/known_hosts:51
    Are you sure you want to continue connecting (yes/no)? yes
    user01@gitserver's password: Counting objects: 2, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (2/2), 317 bytes, done.
    Total 2 (delta 1), reused 0 (delta 0)
    error: insufficient permission for adding an object to repository database ./objects
    fatal: failed to write object error: unpack failed: unpack-objects abnormal exit  
    

1 个答案:

答案 0 :(得分:1)

如果我理解你所要求的东西(它有点模糊), 您在设置共享git仓库时遇到问题,多个用户应该有权访问?

我认为这是某种类型的linux / unix / bsd服务器?


我在公司所做的是,我们在服务器上都有一个用户,我们的主文件夹中有一个裸存储库(用作我们工作回购的私有公共镜像)。我们有一个名为“git”的独立用户,它也是该组的成员,也被称为“git”,有一个简单的回购用作一种规范的通用回购。所有开发人员也都在“git”组中,git repo与该组共享。 (我们的私人回购在我们家里所有其他人只有读取访问权限,所以他们可以拉,但我们可以git push - 镜像到它没有问题。)

ssh配置是每个用户,我使用这个遥控器访问公共仓库:

[remote "commonRepo"]
    url = ssh://<myUserName>@testServerName/~git/commonRepo.git
    fetch = +refs/heads/*:refs/remotes/commonRepo/*

关于配置公钥的细节我不记得了,因为我每隔3年左右才会这样做...但是我们没有连接到“git”用户的任何ssh密钥我们使用自己的ssh密钥我们自己的用户,并依赖Linux中的组权限来访问公共仓库。

确保在服务器上正确设置病态位(或者它的callel),以便在推送到公共存储库时不会更改所有者(导致各种stange错误)