Как настроить беспарольный доступ в Jenkins

Такой функционал может понадобиться для выкладывания результатов сборки на удаленной сервер с помощью команды scp или запуска команд на удаленном сервере с помощью ssh. Даже если вы решите использовать плагин дженкинса вроде Publish Over SSH, то вам придется делать эту же настройку.

Будем считать, что надо выполнить команду:

ssh user_name@remote_host ls -l /tmp

Действия на компьютере с дженкинсом.
Находим домашнюю папку пользователя jenkins (задачи будут запускаться от его лица):

cd ~jenkins

У меня это /var/lib/jenkins/

В ней должна быть папка .ssh. Из файла /var/lib/jenkins/.ssh/id_rsa.pub. Из нее нам нужна единственная строка.

Далее действия на удаленном сервере (по отношению к дженкинсу).
Идем в домашнюю папку пользователя user_name (работаем от его лица).
Создаем папку .ssh (если не создана). Ее владельцем должен быть user_name, права доступа 0700. В ней должен быть файл authorized_keys. Его владельцем должен быть user_name, права доступа 0644. В этот файл вставляем ту самую строку из /var/lib/jenkins/.ssh/id_rsa.pub. В конце файла нужна пустая строка.

После этого при запуске команды

 ssh user_name@remote_host ls -l /tmp

от лица пользователя jenkins не должно быть запроса пароля.

В случае, если пароль по-прежнему запрашивается, запускайте команду с дебажным логгированием и ищите информацию по тексту ошибок в гугле:

 ssh -vvv user_name@remote_host ls -l /tmp
You can leave a response, or trackback from your own site.

Leave a Reply