Я запускаю как ведущие, так и подчиненные Jenkins как контейнеры Docker, используя образ jenkins/jenkins:lts и jenkins/ssh-slave в Ubuntu. Ниже приведены шаги:

  • Запустите ssh-keygen внутри контейнера jenkins-master (docker exec -it container_id bash), чтобы сгенерировать ключи ssh
  • Добавлен сгенерированный открытый ключ в файл author_keys внутри контейнера ssh-slave с использованием dockerfile
  • Добавлен закрытый ключ в учетные данные Jenkins по этой ссылке

Я посмотрел на многие вопросы, связанные с этой проблемой на переполнение стека, но я застрял со следующей ошибкой:

[02/08/19 20:31:06] [SSH] Opening SSH connection to ###.##.#.#:22.
[02/08/19 20:31:06] [SSH] SSH host key matches key in Known Hosts file. Connection will be allowed.
ERROR: Server rejected the 1 private key(s) for jenkins (credentialId:worker-ssh/method:publickey)
[02/08/19 20:31:06] [SSH] Authentication failed.
Authentication failed.
[02/08/19 20:31:06] Launch failed - cleaning up connection
[02/08/19 20:31:06] [SSH] Connection closed.

Шаблон раба в Дженкинс:

Имя: Дженкинс-рабочий

Использование: максимально используйте этот узел

Метод запуска: запуск агента через SSH

Имя хоста: мой ip извлечен из ifconfig

Startegy проверки ключа хоста: известная стратегия проверки файла хоста (.ssh/known_hosts содержит запись для предоставленного ip хоста)

Dockerfile для ssh-раб

    #Docker version 18.09.1
    FROM jenkins/ssh-slave
    COPY /.ssh/id_rsa.pub /.ssh/authorized_keys
    RUN chmod 744 /.ssh/authorized_keys

0