Я использую jenkins master и slave в качестве док-контейнеров, используя образы jenkins / jenkins: lts и jenkins / ssh-slave в Ubuntu.Ниже приведены шаги:
- Ран
ssh-keygen
внутри контейнера jenkins-master (docker exec -it container_id bash
) для генерации ключей ssh - Добавлен сгенерированный открытый ключ в файл author_keys внутри ssh-slave контейнер с использованием dockerfile
- Добавлен закрытый ключ внутри учетных данных Jenkins согласно этой ссылке
Я рассмотрел много вопросов, связанных с этой проблемой, в stackoverflow, но яя застрял со следующей ошибкой:
[02/08/19 20:31:06] [SSH] Открытие SSH-соединения с ###. ##. #. #: 22.[02/08/19 20:31:06] [SSH] Ключ хоста SSH соответствует ключу в файле Known Hosts.Подключение будет разрешено. ОШИБКА: сервер отклонил 1 закрытый ключ (и) для jenkins (credentialId: worker-ssh / method: publickey) [02/08/19 20:31:06] [SSH] Ошибка аутентификации.Ошибка аутентификации. [08/08/19 20:31:06] Ошибка запуска - очистка соединения [08/08/19 20:31:06] [SSH] Соединение закрыто.
Шаблон ведомого в Jenkins:
Имя : jenkins-worker
Использование : максимально используйте этот узел
Метод запуска : запуск агента через SSH
Имя хоста : мой ip извлечен из ifconfig
Проверка ключа хостаstartegy : стратегия проверки известного файла хостов (в файле .ssh / known_hosts содержится запись для предоставленного ip хоста)
Dockerfile для ssh-slave
#Docker version 18.09.1
FROM jenkins/ssh-slave
COPY /.ssh/id_rsa.pub /.ssh/authorized_keys
RUN chmod 744 /.ssh/authorized_keys