# SSH в вашем контейнере

{% hint style="warning" %}
Edgegap не рекомендует делать службу SSH доступной в ваших продуктивных развертываниях.
{% endhint %}

### Изменение вашего Dockerfile

Мы будем собирать контейнер Docker, используя другой Docker `Dockerfile` в этой версии.

Нам нужно установить службу OpenSSH и включить её. Создайте пользователя и пароль для подключения к вашему серверу.

В контейнере, запущенном на **Alpine**, объедините следующее:

```dockerfile
RUN apk --update add --no-cache openssh bash
RUN sed -i s/#PermitRootLogin.*/PermitRootLogin\ yes/ /etc/ssh/sshd_config
RUN echo "tester:$ecureP@ss" | chpasswd

EXPOSE 22
```

В контейнере, запущенном на **Ubuntu**, добавьте следующее:

```dockerfile
RUN apt-get update
RUN apt-get install openssh-server sudo -y

RUN useradd -rm -d /home/ubuntu -s /bin/bash -g root -G sudo -u 1000
RUN echo 'tester:$ecureP@ss' | chpasswd

EXPOSE 22
```

В вашем entrypoint вам нужно будет добавить следующую команду:

```sh
service ssh start
```

Мы рекомендуем протестировать развертывание локально, используя команду docker run, чтобы проверить запуск сервера.

После тестирования вы можете запушить вашу новую версию в репозиторий контейнеров.

### На Edgegap

Мы предлагаем иметь версию с именем `-dev` или что-то, что имеет смысл для вашего сервиса. Таким образом у вас будет возможность выполнить некоторые тесты и легко войти в ваш контейнер с использованием инфраструктуры Edgegap.

1. Создайте новую версию вашего приложения, добавив `Открыть TCP-порт 22`
2. Создайте развертывание, используя только что созданную версию
3. Как только служба запущена (Ready), посмотрите информацию о вашем развертывании. Вы увидите внешнее отображение порта 22.
4. Вы можете использовать Putty и подключиться, используя FQDN развертывания или IP и отображаемый порт
5. Имя пользователя и пароль, которые вы настроили.
