我想从新工作站向我的 gitolite 服务器添加一个 ssh 密钥。我无法通过 gitosis-admin 进行操作,因为我无法克隆它,而且我无法访问我以前的笔记本电脑,其中包含我安装 gitolite 的 ssh 密钥。
如何在不克隆 gitosis-admin 的情况下将新密钥添加到 gitosis-admin/keydir?
谢谢
“不要惊慌”页面可以提供帮助(对于gitolite V3,而不是旧的过时 gitosis):
如果您丢失了 gitolite 管理员密钥或访问权限,请执行以下操作。我们假设您的用户名是“
alice
”。
- 为自己创建一个新的密钥对,并将公钥复制到服务器作为“
alice.pub
”。- 登录到服务器,然后运行
gitolite setup -pk alice.pub
.就是这样; 新
alice.pub
文件将替换之前存储库中存在的任何内容。
这将允许您使用gitolite-admin
repo 的克隆添加密钥,就像您应该的那样。
这不会“重置”您的 gitolite.conf 文件或 gitolite-admin 存储库中的任何内容:它将完成该~/.ssh/authorized_keys
文件。
它当然对您现有的存储库没有影响。
话虽如此,如果 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 不会进行访问检查!