密钥应放在Jenkins服务器上的哪个位置?

时间:2013-07-18 22:13:09

标签: git ssh jenkins

我无法让Jenkins连接到我的git存储库。我怀疑我的问题出在钥匙的位置。我应该把钥匙放在哪里?我读过的是它应该放在Jenkins主目录中。这是Jenkins运行的目录吗? / home / tomcat或jenkins所说的是配置系统/ opt / bitnami / apps / jenkins / jenkins_home的主目录?是否需要在与键相同的目录中配置文件?

1 个答案:

答案 0 :(得分:3)

Zach,你可能很久以前就解决了这个问题,但是为了防止其他人在寻找答案,这对我有用。这里没有什么特别的东西 - 如果你可以使用git作为用户tomcat并与你的git repo进行交互,那就是它的全部内容。除了提供项目仓库位置(没有密钥设置或凭证等)之外,不要再在jenkins构建工作中做任何事情。我们会让Jenkins外面的git和ssh完成所有工作。

我也使用bitnami jenkins AMI,事实上它在Tomcat中运行Jenkins作为战争应用程序 - 所以它作为Tomcat运行。

  • sudo su - tomcat
  • 将.profile中的路径更新为具有git的bin位置

PATH="/opt/bitnami/git/bin:$PATH"

' git --version'应该现在作为tomcat用户工作,所以典型的git第一次设置

  • git config --global user.name" App User Name"
  • git config --global user.email" app@dom.com"将值替换为套件(不要在Jenkins中添加这些)
    • git config -l(应显示这些新添加的值)

现在是ssh设置

  • 在/ home / tomcat
  • 中创建一个.ssh目录
  • cd .ssh
  • 将您的rsa密钥(pub / private)上传到此目录
    • (重要的是,在这些文件上设置mod 600)
    • (同样重要的是,确保密钥没有密码)
  • 创建文件' config'并添加以下内容(替换主机和私钥名称以适应)

Host bitbucket.org IdentityFile ~/.ssh/id_rsa

最终检查

  • ' ssh -T git@bitbucket.org' (或者你的git提供者是什么)应该以(你的名字)或一些成功消息登录的方式返回你

(可选)

我做了以下操作来帮助验证我的密钥设置和指纹,但我认为这不是必需的。

  • 将以下内容添加到.bashrc文件的末尾,注销并重新登录并运行' ssh-add -l'。你应该看到指纹和你的密钥文件路径/名称 - 一切都应该很好。



SSH_ENV=$HOME/.ssh/environment

# start the ssh-agent
function start_agent {
    echo "Initializing new SSH agent..."
    # spawn ssh-agent
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
    echo succeeded
    chmod 600 "${SSH_ENV}"
    . "${SSH_ENV}" > /dev/null
    /usr/bin/ssh-add
}

if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent;
    }
else
    start_agent;
fi