【问题标题】:gitosis asking for passwordgitosis 要求输入密码
【发布时间】:2011-02-03 03:56:37
【问题描述】:

我已经按照here 的说明设置了一个 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

【问题讨论】:

  • 我什至不记得我做了什么来解决这个问题,或者我什至没有解决它。我目前使用 gitolite,感觉好多了。遇到这样的问题该怎么办?

标签: git passwords ssh rsa gitosis


【解决方案1】:

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

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

然后再试一次。

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

【讨论】:

  • OP,如果问题是公钥与私钥,请接受 Arlen Cuss 的回答。我把这个留给那些把“.pub”从公钥中去掉的人。
  • 老实说,我不知道 gitosis 做什么 如果放入私钥,但我认为它不会起作用,这可能是问题..谁知道:-}
  • @Arlen Cuss,它将在授权密钥文件中安装私钥,然后 ssh 将无法工作。 (我已经有人这样做了。:-))
【解决方案2】:

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

我不得不遵循许多网站给出的指示,但每次都在之后

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

它正在询问 GIT 的密码。

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

 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/

【讨论】:

    【解决方案3】:

    确保您将 公钥 放入您的 gitosis 存储库中,而不是您的私有密钥!

    当您生成密钥文件时,您将获得一个 .pub 文件 - 使用该文件,但将名称放在您的 gitosis.conf 中,不要使用 .pub

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        我最近在使用私有存储库时遇到了这个问题。我遇到了这个答案并阅读了答案; thisthis 成功了。

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

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

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

        希望对你有帮助

        【讨论】:

          【解决方案6】:

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

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

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

          【讨论】:

            【解决方案7】:

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

            检查 ~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,请在日志中查找错误消息。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2022-01-11
              • 1970-01-01
              • 1970-01-01
              • 2013-09-30
              • 2014-04-26
              • 2012-04-02
              • 2013-03-17
              • 2013-08-29
              相关资源
              最近更新 更多