Как добавить SSH-защищенный ключ в ssh-agent для моих экземпляров Jenkins CI?

Я управляю сервером Jenkins CI, работающим на Ubuntu 14.04 с несколькими требованиями:

  • задания используют аутентификацию по открытому/закрытому ключу для обеспечения безопасности, поэтому перед их выполнением в ssh-agent должна быть добавлена идентификация
  • наши файлы закрытых ключей должны быть защищены парольной фразой
  • мы не можем хранить эту парольную фразу в небезопасном месте (например, исходный код скрипта или файлы конфигурации Jenkins)

в идеале, я хочу ssh-добавьте и введите парольную фразу в порядке один раз за перезагрузку. но я не могу понять, как заставить Дженкинса CI выполнять свои задания таким образом, чтобы использовать эту аутентификацию.

можно ли заставить Дженкинса заранее воспользоваться преимуществами идентификаторов, добавленных в ssh-агент?


Есть ли альтернативная стратегия, которую я здесь не вижу?

13
задан Chris Betti
30.04.2023 14:56 Количество просмотров материала 2477
Распечатать страницу

1 ответ

Run ssh-agent со статическим путем сокета, под тем же UID, что и Дженкинс использует:

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

убедитесь, что $SSH_AUTH_SOCK переменная окружения указывает на этот путь. Вы хотите, чтобы установить его 1) вручную перед ssh-add'ING ключи, и 2) в сценарии запуска Дженкинс (например,/etc/init.d/jenkins или эквивалент):

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

sudo -E -u jenkins ssh-add ...
2
отвечен grawity 2023-05-01 22:44

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх