6

我想从新工作站向我的 gitolite 服务器添加一个 ssh 密钥。我无法通过 gitosis-admin 进行操作,因为我无法克隆它,而且我无法访问我以前的笔记本电脑,其中包含我安装 gitolite 的 ssh 密钥。

如何在不克隆 gitosis-admin 的情况下将新密钥添加到 gitosis-admin/keydir?

谢谢

4

1 回答 1

9

“不要惊慌”页面可以提供帮助(对于gitolite V3,而不是旧的过时 gitosis):

丢失管理员密钥/访问权限

如果您丢失了 gitolite 管理员密钥或访问权限,请执行以下操作。我们假设您的用户名是“ alice”。

  • 为自己创建一个新的密钥对,并将公钥复制到服务器作为“ alice.pub”。
  • 登录到服务器,然后运行gitolite setup -pk alice.pub​​.

就是这样; 新alice.pub文件将替换之前存储库中存在的任何内容。

这将允许您使用gitolite-adminrepo 的克隆添加密钥,就像您应该的那样。

这不会“重置”您的 gitolite.conf 文件或 gitolite-admin 存储库中的任何内容:它将完成该~/.ssh/authorized_keys文件。
它当然对您现有的存储库没有影响。

话虽如此,如果 gitolite 命令看起来风险太大,您可以尝试第二种方法:


绕过gitolite

您可能由于 conf 文件错误而失去访问权限,在这种情况下,上述技巧将无济于事。您想要的是对 repo 进行更改(或者可能只是倒带)并推动它。以下是如何做到这一点:

  • 登录到服务器。
  • 使用完整路径克隆管理存储库:git clone $HOME/repositories/gitolite-admin.git temp。
  • 进行任何您想要的更改——添加/替换密钥、'git revert' 或 'git reset --hard' 到较旧的提交等。任何你需要解决问题的东西,真的。
  • 运行 gitolite push(或可能 gitolite push -f)。请注意,这是“gitolite push”,而不是“git push”。

注意:执行此操作时 gitolite 不会进行访问检查!

于 2013-01-07T16:22:16.380 回答