Як я можу додати SSH захищений ключ до ssh-агента для моїх інстанцій Jenkins CI?


2

Я керую сервером Jenkins CI, що працює на Ubuntu 14.04 з кількома вимогами:

  • Роботи використовують аутентифікацію відкритого / приватного ключа для безпеки, тому особа повинна бути додана до ssh-агента перед їх виконанням
  • Наші файли приватного ключа повинні бути захищені парольною фразою
  • Ми не можемо зберігати цю парольну фразу в незахищеному місці (наприклад, вихідний код сценарію або конфігураційні файли Дженкінса)

В ідеалі я хочу ssh-add і ввести пропускну фразу в порядку один раз за перезавантаження. Але я не можу зрозуміти, як змусити Jenkins CI виконувати свої завдання таким чином, щоб скористатися цією автентифікацією.

Чи можна змусити Дженкінса скористатися особами, доданими до агента ssh заздалегідь?
Чи є альтернативна стратегія, яку я тут не бачу?

Відповіді:


2

Запустити ssh-agentзі статичним контуром сокета під тим самим UID, який використовує Дженкінс:

sudo -u jenkins ssh-agent -a /tmp/ssh-agent.jenkins

Переконайтеся, що $SSH_AUTH_SOCKзмінна середовища вказує на цей шлях. Ви хочете встановити його 1) вручну, перш ніж ssh-додавання ваших ключів, і 2) в сценарії запуску Jenkins (наприклад, /etc/init.d/jenkinsабо еквівалент):

export SSH_AUTH_SOCK="/tmp/ssh-agent.jenkins"

sudo -E -u jenkins ssh-add ...
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.