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

时间:2013-01-07 16:02:59

标签: gitolite ssh-keys

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

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

由于

1 个答案:

答案 0 :(得分:8)

The "Don't panic" page可以提供帮助(适用于gitolite V3,而不是old obsolete gitosis):

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

  

如果您丢失了gitolite管理密钥或访问权限,这就是您的工作。我们假设您的用户名为“alice”。

     
      
  • 将自己设为新密钥对,并将公钥复制为“alice.pub”。
  •   
  • 登录服务器,然后运行gitolite setup -pk alice.pub
  •   
     

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

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

这不会“重置”您的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不会进行访问检查!