6

我已经按照此处的说明设置了一个 gitosis 服务器。它适用于初始用户,但我最近添加了一个新用户。这是我采取的步骤。

  • ssh-keygen使用文件名 johndoe创建了一个 rsa 密钥对。
  • 然后将其复制到 gitosis admin repo 中的 keydir。
  • 编辑 gitosis 配置文件并将用户 johndoe 添加到成员列表中
  • 使用提交的更改git commit -a -m "what i did"
  • 将更改推送到服务器

之后,我尝试使用新的密钥文件签出。它要求输入密码,当我输入正确时,它会要求输入用户 git 的密码!!!用户 git 没有密码。

现在我在 sshd_config 中关闭了 PasswordAuthentication,现在它显示“权限被拒绝(公钥)。我检查了 git 用户的 authorized_keys 文件,其中只有一个密钥被授权,即 gitosis 管理员的初始密钥。

我还仔细检查了 ./gitosis-admin.git/hooks/post-update 钩子的权限,它有 755

4

7 回答 7

6

Gitosis 有点愚蠢——你用于密钥文件的文件名是字面意思“johndoe”吗?如果是这样,请更改:

git mv keydir/johndoe keydir/johndoe.pub
git commit -m "changed key name"
git push

然后再试一次。

此外,正如 Arlen Cuss 指出的那样,确保它实际上公钥,而不是私钥。

于 2011-02-03T05:43:02.337 回答
5

你好,我也遇到了同样的问题,终于找到了解决办法。

我不得不遵循许多网站给出的说明,但每次之后

git clone git@[serveur_name]:gitosis-admin.git

它正在询问 GIT 的密码。

authorized_keys解决方案:我已经在我的文件(位于服务器目录中)中插入了管理员公钥(在我的客户端用户上创建的;然后导入到服务器的 tmp 目录/home/git/.ssh/中),它现在可以工作了。

 cp authorized_keys authorized_keys.bak
 cat /tmp/id_dsa_git.pub >> authorized_keys

我发现这个@http://fclose.com/b/linux/366/set-up-git-server-through-ssh-connection/

于 2011-11-23T10:39:13.617 回答
1

确保您还添加了 (git add) .pub 文件,并将它们正确提交并推送到存储库。

于 2011-07-24T11:22:34.367 回答
1

确保你把你的公钥放在你的 gitosis repo 中,而不是你的私钥!

当你生成一个密钥文件时,你会得到一个.pub文件——使用那个文件,但是把名字放在你的gitosis.conf不带.pub.

于 2011-02-03T08:02:52.673 回答
0

Windows 用户经常出错的一件事,并且大多数教程都没有发现(因为他们假设您使用的是 linux 客户端)

msysgit,windows git 控制台,正在 /home/YOURUSERNAME/.ssh/id_rsa 中寻找您的私钥 ,在 windows 上是 (Windows 7) C:\Users\YOURUSERNAME.ssh\id_rsa

虽然大多数人都使用该文件夹,但由于它是自动创建的,但他们错过了该文件必须命名为“id_rsa”,否则它不会被 msysgit 使用。我没有找到告诉 msysgit 使用其他键的方法

于 2012-06-23T10:18:23.887 回答
0

我最近在一个私人存储库中遇到了这个问题。我遇到了这个答案并阅读了答案;成功了。

为了后代总结,请确保将.pub密钥添加到gitosis-admin/keydir目录中。它必须是一个.pub文件。

提交并将您的更改推送到gitosis-admin

~/.ssh/authorized_keys将自动更新,因此无需将您的公钥文件的输出重定向到它。

希望这可以帮助

于 2012-02-10T17:57:04.547 回答
0

最有可能发生的事情是更新后挂钩没有正常运行。

检查 ~git/.ssh/authorized_keys 里面有你的公钥。

如果不是,则更新后挂钩未运行。随后更改的权限?其他一些配置错误。是从别处复制的?

  1. 在服务器上,检查 gitosis admin:git clone /path/to/gitosis-admin.git。对 gitosis.conf 进行微不足道的更改。检查您的公钥是否在 keydir 中。我必须以 git 用户身份运行它。

  2. 提交 gitosis.conf。git add gitosis.conf && git commit -m "刷新密钥"。

  3. 现在检查 authorized_keys 文件。

  4. 更改 gitosis.conf 并再次提交。

测试访问。如果在此过程之后未更新 authorized_keys,请在日志中查找错误消息。

于 2016-11-01T07:02:32.087 回答