如何在不使用gitolite-admin的情况下向gitolite服务器添加ssh密钥?

6

我想在新的工作站上为我的gitolite服务器添加一个ssh密钥。

我无法通过gitosis-admin进行操作,因为我无法克隆它,并且我也无法访问包含我安装gitolite时使用的ssh密钥的旧笔记本电脑。

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

谢谢。

1个回答

9

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

管理密钥/访问丢失

如果你丢失了 gitolite 管理密钥或访问权限,以下是解决方案。我们假设你的用户名是 'alice'。

  • 制作新的密钥对,并将公钥复制到服务器上,命名为 'alice.pub'。
  • 登录服务器,运行 gitolite setup -pk alice.pub

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

这将允许您使用一个克隆的 gitolite-admin 仓库来添加密钥,就像您应该做的那样。

这不会“重置”您的gitolite.conf文件或gitolite-admin存储库中的任何内容:它将完成~/.ssh/authorized_keys文件。
它肯定不会影响您现有的存储库。
话虽如此,如果gitolite命令似乎太冒险,您可以尝试第二种方法:
绕过gitolite 如果由于配置文件错误而失去访问权限,则上述技巧无法帮助您。您需要对存储库进行更改(或者可能只是倒回)并将其推送。以下是如何执行此操作的步骤:
1. 登录服务器。 2. 使用完整路径克隆管理库:git clone $HOME/repositories/gitolite-admin.git temp。 3. 进行任何想要的更改——添加/替换密钥,“git revert”或“git reset --hard”到旧提交等。确实需要解决问题的任何内容。 4. 运行gitolite push(或可能是gitolite push -f)。请注意,这是“gitolite push”,而不是“git push”。
注意:在执行此操作时,gitolite不进行访问检查!

这不会删除我的现有存储库,对吧? - jul
以防万一,我将使用“绕过 gitolite”的技巧。感谢提供链接。 - jul
@jul 不会,它只会完成~/.ssh/authorized_keys文件。话虽如此,您可以通过首先克隆它(在服务器上本地克隆)来备份您的gitolite-admin repo。 - VonC
@jul 我已经添加了第二种方法(“绕过gitolite”)以增加答案的可见性。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接