# Ssh агент

<span style="color: rgb(224, 62, 45);">**SSH Agent plugin нахер в данном случае не нужен. Он необходим только для подключения внутри stage с существующего агента к другому серверу.**</span>

**Сервер, на котором будем выполнять команды:**

Добавить пользователя jenkins и добавить нового пользователя в группу sudo, docker (в случае моей задачи)

```
sudo adduser jenkins
sudo usermod -aG sudo jenkins
sudo usermod -aG docker jenkins
```

Авторизоваться на сервере под пользователем jenkins

Установить java

```
sudo apt update
sudo apt install fontconfig openjdk-17-jre
```

Создать приватный и публичный ключи для доступа к серверу по ssh пользователя jenkins.

```
  mkdir ~/.ssh && cd ~/.ssh
```

```
  ssh-keygen -t rsa -C "Access key for Jenkins slaves"
```

```
cat id_rsa.pub >> ~/.ssh/authorized_keys
```

Ключ из файла id\_rsa потребуется для настройки доступа Jenkins

**Jenkins web интерфейс:**

Настройки Jenkins -&gt; Credentials -&gt; System -&gt; Global credentials -&gt; Add credential [![jenkins_ssh_1.JPG](http://bobrobotirk.ru/uploads/images/gallery/2025-03/scaled-1680-/jenkins-ssh-1.JPG)](http://bobrobotirk.ru/uploads/images/gallery/2025-03/jenkins-ssh-1.JPG)

В раздел ключ вставить текст из файла id\_rsa целиком (включая -----BEGIN... ------END...)

Перейти в Настроить Jenkins -&gt; Nodes и создать узел

 [![jenkins_ssh_2.JPG](http://bobrobotirk.ru/uploads/images/gallery/2025-03/scaled-1680-/jenkins-ssh-2.JPG)](http://bobrobotirk.ru/uploads/images/gallery/2025-03/jenkins-ssh-2.JPG)

Параметры агента:

<table border="1" id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80-%D0%97%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%A3%D0%B4" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 31.131%;"></col><col style="width: 68.9882%;"></col></colgroup><thead><tr><td class="align-center">Параметр</td><td class="align-center">Значение</td></tr></thead><tbody><tr><td>Удаленная корневая директория</td><td>/home/jenkins/jenkins-agent</td></tr><tr><td>Метки</td><td>docker-agent-01</td></tr><tr><td>Host key verification strategy</td><td>Manually trusted key verification</td></tr></tbody></table>

[![jenkins_ssh_3.JPG](http://bobrobotirk.ru/uploads/images/gallery/2025-03/scaled-1680-/jenkins-ssh-3.JPG)](http://bobrobotirk.ru/uploads/images/gallery/2025-03/jenkins-ssh-3.JPG)

После настройки в узлах агент должен быть активен.

Тестовый pipeline

```
node('docker-agent-01') {
        stage ('second'){
            sh 'hostname'
    }
}
```

должен вывести хост агента.

В Jenkins текущая рабочая директория -

```
/home/jenkins/jenkins-agent/workspace/<имя pipeline>
```