Генерируем на целевом сервере SSH ключ
Чтобы Jenkins на нашем сервере смог получить доступ к коду из репозитория — необходимо сгенерировать приватный и публичный ключ и раздать их в соответствии с назначением.
Для генерации ключей, в терминате (консоли) сервера вводим команду
$ ssh-keygen
При этом видим предложение сгенерировать ключ по стандартному для этого случая пути
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user01/.ssh/id_rsa):
Рекомендуется выбирать дефолтный путь — жмем Enter, но вы можете и поменять путь.
Далее система попросит ввести passphrase. Для простоты можем оставить это поле пустым, как и следующее (подтверждающее ввод)
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Успешная генерация ключа сопровождается следующим выводом в консоли
Your identification has been saved in /Users/emmap1/.ssh/id_rsa.
Your public key has been saved in /Users/emmap1/.ssh/id_rsa.pub.
The key fingerprint is:
4c:80:61:2c:00:3f:9d:dc:08:41:2e:c0:cf:b9:17:69 emmap1@myhost.local
The key’s randomart image is:
+—[ RSA 2048]—-+
|*o+ooo. |
|.+.=o+ . |
|. *.* o . |
| . = E o |
| o . S |
| . . |
| . |
| |
| |
+——————+
Выведем сгенерированные файлы списком на экран
$ ls ~/.ssh id_rsa id_rsa.pub
Выводится 2 файла:
id_rsa — приватный ключ, который понадобится нам для генерациия пользователя аутентификации в репозитории на cтороне Jenkins
id_rsa.pub — публичный ключ, который необходимо разместить в разделе access keys целевого репозитория
Добавляем публичный ключ в разделе ключей приватного репозитория
Например, в Bitbucket, публичный ключ можно добавить в разделе
Repository settings — Access keys — Add key (настройки конкретного репозитория)
Добавляем приватный ключ в Jenkins
Заходим в раздел Управления Ключами (Jenkins — Manage Jenkins — Manage Credentials)
И добавляем приватный ключ (содержимое файла id_rsa.pub) в поле Private key, как проиллюстрировано ниже
Заполняем поле Username — имя для пользователя. Сохраняем.
Осталось подключится к репозиторию.
Перейдем в настройки ранее созданного проекта в Jenkins.
Source Code Management — выбираем Git (1)
Repositories — вставляем ссылку на репозиторий (2) и из выпадающего списка выбираем нашего только что созданного пользователя с приватным ключом (3)
Branches to build — обычно указывают мастер ветку — */master (4)
Сохраняем проект в Jenkins.
Теперь мы готовы собрать проект из приватного репозитория.