【问题标题】:Creating SSH keys for Gerrit and Hudson为 Gerrit 和 Hudson 创建 SSH 密钥
【发布时间】:2011-04-12 08:44:27
【问题描述】:

我正在尝试使用Hudson Gerrit Trigger 插件。

无论出于何种原因,Gerrit 不接受位于/var/lib/hudson/.ssh/id_rsaSSH 密钥。

在 GUI 中我收到 Connection error : com.jcraft.jsch.JSchException: Auth fail 作为错误,当我在终端中工作时我收到 Permission denied (publickey) 错误。

如何生成和使用有效的私钥,以便 HudsonGerrit 可以正常运行?

【问题讨论】:

    标签: git hudson ssh-keys hudson-plugins gerrit


    【解决方案1】:

    OP Josh Smith 设法解决了:

    我实际上需要将用户(我)的/var/lib/hudson/.ssh/id_rsa.pub 中的SSH 键添加到 Gerrit GUI 中。
    然后从那里开始它就像一个魅力。
    用户名必须是 Gerrit 中的用户名(管理员帐户)。

    我最初的建议如下:


    哪些用户会使用基于 Web 的代码审查系统 Gerrit?

    该用户在其$HOME/.ssh/authorized_keys 中需要您的/var/lib/hudson/.ssh/id_rsa.pub 公共ssh 密钥,如this guide 中所示。

    密钥分配

    必须将 RSA 密钥对的公共部分复制到客户端将访问的任何服务器。要复制的公钥信息应位于客户端的~/.ssh/id_rsa.pub文件中。
    假设所有服务器都使用 OpenSSH 而不是不同的 SSH 实现,则必须将公钥数据附加到服务器上的 ~/.ssh/authorized_keys 文件中。

    # first, upload public key from client to server
    client$ scp ~/.ssh/id_rsa.pub server.example.org:
    
    # next, setup the public key on server
    server$ mkdir ~/.ssh
    server$ chmod 700 ~/.ssh
    server$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
    server$ chmod 600 ~/.ssh/authorized_keys
    server$ rm ~/id_rsa.pub
    

    确保将新的公钥数据附加到 authorized_keys 文件中,因为可能正在使用多个公钥。每个公钥条目必须位于不同的行。


    【讨论】:

    • @VonC 我觉得你回答了我的每一个问题!我还不如有一条直线...hudson 是应该使用评论系统的用户,我认为。原谅菜鸟。你的意思是,还是实际的 human 用户,例如joshsmith
    • @Josh:如果“hudson”是执行与本地主机 Gerrit 系统的 ssh 连接的用户,那么它需要将自己的 id_rsa.pub 添加到其 ~hudson/.ssh/authorized_key
    • @Josh:“hudson 用户的$HOME 在哪里?”。确切地。问题出在哪里,以及我在 SO 上看到的与 ssh 相关的 Hudson 问题的一般困难。您需要在执行该作业时以某种方式显示环境变量,并查看是否提到了$HOME
    • @Josh:您需要将id_rsa.pub 附加到authorized_keys 文件的内容中(如果authorized_keys 文件尚不存在,则创建该文件)。有关详细信息,请参阅sial.org/howto/openssh/publickey-auth
    • @Josh:太好了!你找到了解决方案。我更新了我的答案以反映它,并记录(以供将来参考)公共 SSH 密钥分发的概念。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 2021-02-07
    • 2018-08-19
    • 2011-01-27
    • 2012-06-09
    • 2016-12-28
    相关资源
    最近更新 更多