【问题标题】:git clone permission denied (gitosis)git clone 权限被拒绝(gitosis)
【发布时间】:2011-10-15 06:13:17
【问题描述】:

我尝试在我的 linux-box (Debian) 上设置一个 git 存储库。我想在我的 osx Lion 上克隆 git repo。我安装了 gitosis,在我的电脑上创建了一个 rsa 密钥(git_rsa),把它放到服务器上,然后初始化 gitosis。 我有一个 ~/.ssh/config 文件,因为 ssh 端口不是默认端口。我也将 git_rsa 密钥添加到我的钥匙串中。 我的 ~/.ssh/config 看起来像

宿主 git

HostName mydomain.com
Port 54321
Identityfile ~/.ssh/git_rsa
User git

当我尝试克隆管理仓库时:

git clone git:gitosis-admin.git

我给了:权限被拒绝(公钥)。 致命:远端意外挂断 问题是什么? (密钥被 chmoded 为 700 并且 ssh 可以完美地使用相同的密钥但另一个用户)

谁能给我一个提示,我该如何解决这个问题?

提前致谢。

【问题讨论】:

  • 您的服务器上确实有一个“git”帐户,对吧?其/home/git/.ssh/authorized_keys 具有git_rsa.pub 内容?
  • 是的,我有 git 帐户,并且 authorized_keys 有 git_rsa.pub 内容。
  • 只是出于好奇,为什么是 gitosis(已过时)而不是 gitolite? github.com/sitaramc/gitolite
  • “ssh 可以完美地使用相同的密钥但另一个用户”:你的意思是另一个用户可以克隆 gitosis-admin 存储库吗?
  • 不,如果我将此密钥添加到另一个用户 authorized_keys 我可以访问服务器。所以没有“权限被拒绝”的消息……为什么是 gitosis?我想尝试 git,在 google 中搜索,然后单击最相关的链接之一......这是 gitosis :) 编辑:无论如何我都会尝试 gitolite。

标签: git ssh


【解决方案1】:

好的,我尝试了 gitolite,一切正常。方法如下:

  1. 使用apt-get 安装gitolite。
  2. 使用gl-setup 命令添加密钥。
  3. 克隆 gitolite-admin.git 存储库。

不幸的是,我不知道 gitosis 出了什么问题。

【讨论】:

【解决方案2】:

我遇到了这个问题。全新安装 gitosis 后,repo gitosis-admin.git 的克隆工作得很好。但是,在生成新的 RSA 密钥对并重新初始化后,使用

sudo -H -u git gitosis-init < id_rsa.pub

我也遇到了上述错误。

比较公钥后生成的

id_rsa.pub

以及我的 gitosis (git) 用户的家

/home/git/.ssh/authorized_keys

我注意到,公钥不匹配。

id_rsa.pub 的内容替换 authorized_keys 中的密钥后,它起作用了。

注意: 由于authorized_keys 文件是由gitosis 自动生成和更新的,因此您还必须确保将公钥文件(在我的例子中为id_rsa.pub)放在keydir gitosis-admin 存储库的目录。

【讨论】:

    【解决方案3】:

    我们自己的 gitosis 服务器已启动并正在运行。

    正确的命令应该是-

    git clone [server-git-user]@[domain-name.com]:repo.git
    

    所以,

    git clone git@mydomain.com:gitosis-admin.git
    

    假设您在服务器中创建了一个名为 git 的用户,并且在您的 gitosis.conf 中有类似以下内容的内容

    [group gitosis-admin]
    members = key_file_name_in_keydir_folder_without_the_pub_extension
    writable = gitosis-admin
    

    【讨论】:

    • 我很好奇 gitosis 出了什么问题,所以我尝试修改 gitosis.conf 但没有帮助。我的做法和你写的完全一样……
    • 尝试git clone git@mydomain.com:gitosis-admin.git后你得到了什么?
    • 权限被拒绝(公钥)。我将公钥更改为另一个。看来 gitolite 将是我的解决方案。
    • 如果您无法解决关键问题,那么 gitolite 很可能也无法正常工作。顺便说一句,祝你好运:)
    猜你喜欢
    • 2011-12-15
    • 2018-04-15
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 2021-11-11
    • 2015-10-29
    相关资源
    最近更新 更多