Настройка Jenkins для запуска команд SSH. Где хранить ключи SSH для пользователя с отключенным входом в систему?

Настройка Jenkins для запуска команд SSH. Где хранить ключи SSH для пользователя с отключенным входом в систему?

Я пытаюсь сгенерировать пару ключей, чтобы разрешить серверу jenkins подключаться по ssh к другому (через плагин ssh-steps, если это имеет значение). Открытый ключ будет входить в авторизованные ключи на целевом хосте. Я понимаю, что это должно быть просто, что-то вроде:

sudo su - [jenkins user]
ssh-keygen -t rsa -b 4096 -C jenkinsuser@jenkinshost 

Затем сохраните ключ /home/jenkinsuser/.ssh/id_rsaи получите открытый ключ, чтобы добавить его к авторизованным ключам на хосте.

Я вижу, что это sudo su - jenkinsuserне работает и /etc/passwdпоказывает, что оболочка для этого пользователя настроена на /bin/false, чтобы отключить вход в систему, насколько я понимаю.

Имея это в виду, я ищу наилучшую практику по назначению места для ключа SSH, поскольку у пользователя отключен вход в систему и, следовательно, нет домашнего каталога.

решение1

У Jenkins есть встроенныйхранилище учетных данныхчто является наиболее подходящим местом для хранения ключей SSH, используемых заданиями Jenkins. Хранилище учетных данных предназначено для хранения различных видов учетных данных, используемых заданиями Jenkins, таких как ключи SSH, имена пользователей/пароли и ключи API. Хранилище учетных данных позволяет делегировать доступ и гарантирует, что конфиденциальные учетные данные не будут записаны в выходные данные задания.

решение2

Для запуска скрипта генерации ключей вам не нужны права root.

Я обычно храню все свои ключи в /etc/ssh. Это вне домашнего каталога и я думаю, /etcчто это самый точный каталог для этого.

Связанный контент