Такой функционал может понадобиться для выкладывания результатов сборки на удаленной сервер с помощью команды 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 |