SSH доступ к облаку Jelastic

    Отличительной чертой Jelastic можно считать удобный UI, который позволяет управлять многими процесами в вашем окружении без особых трудностей. Основные возможности доступны в панели управления, но порой пользователю необходимо погрузиться поглубже, чтобы произвести дополнительные настройки в том или ином контейнере, с целью кастомизации, улучшения производительности и т.д. Потому мы предоставили возможность доступа к контейнерам через SSH. В этой статье мы расскажем об этой функции и ее использовании в облаке Jelastic.

    image

    Обзор


    SSH (Secure Shell) — это протокол, используемый для безопасного соединения с удаленным контейнером и выполнения действий над ним. Команды SSH зашифрованы и защищены: подключение клиент/сервер проходит аутентификацию с помощью цифрового сертификата, а пароли также защищены шифрованием.

    Чтобы предоставить SSH доступ в Jelastic, мы добавили новый компонент инфраструктуры — SSH Gateway (SSH шлюз). Он принимает подключения пользователей из интернета и передает их нужному контейнеру по внутренней сети.

    image

    Процедура аутентификации в Jelastic SSH шлюзе разделена на две независимые части:
    • подключение конечного пользователя к шлюзу (внешняя аутентификация)
    • подключение шлюза к контейнеру пользователя (внутренняя аутентификация)

    Оба этапа базируются на стандартном протоколе SSH и используют криптографическую пару (открытый и закрытый ключи).

    С помощью Jelastic SSH шлюза можно легко получить доступ:

    • ко всему аккаунту, с возможностью перемещаться между вашими окружениями и контейнерами без дополнительной аутентификации, используя интерактивное меню

    image
    • непосредственно к отдельным контейнерам, работая с ними удаленно с помощью определенных инструментов (например, Capistrano), или используя протоколы SFTP и FISH

    image
    При доступе к контейнерам посредством SSH, пользователь получает все необходимые разрешения и дополнительно может управлять основными сервисами с помощью команд sudo следующего типа (и других):

    sudo /etc/init.d/jetty start
    sudo /etc/init.d/mysql stop
    sudo /etc/init.d/tomcat restart
    sudo /etc/init.d/memcached status
    sudo /etc/init.d/mongod reload
    sudo /etc/init.d/nginx upgrade
    sudo /etc/init.d/httpd help


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

    Кроме того, Jelastic поддерживает SFTP (Secure File Transfer Protocol), благодаря внедрению потокового демона для обработки SFTP-соединений. Это позволяет получать доступ к файлам, управлять ими и передавать их непосредственно в контейнер через SSH шлюз, что обеспечивает полную безопасность данных.

    Еще один защищенный сетевой протокол — это FISH (Files transferred over Shell protocol). Он поддерживается рядом популярных FTP-клиентов и файловых менеджеров, таких как Midnight Commander Konqueror, lftp, Krusader и другие. FISH предоставляет пользователю защищенный доступ и управление файловой системой контейнера.

    Ниже мы расскажем, как можно:

    • сгенерировать SSH ключ;
    • добавить SSH ключ;
    • получить доступ к контейнерам и окружениям.


    Генерация SSH ключа


    Процедура генерации SSH ключа зависит от используемой вами операционной системы:
    • Linux/MacOS
    • Windows

    Для Linux/MacOS


    Сгенерируйте новый ключ SSH (DSA или RSA), используя инструмент ssh_keygen:

    1. Выполните генерацию с помощью следующей команды:

    $ ssh-keygen -t dsa

    2. Чтобы получить ключ, перейдите к файлу id_dsa.pub

    ~ $
    ~/.ssh $ cat
    id_dsa id_dsa.pub known_hosts
    ~/.ssh $ cat id_dsa.pub


    3. Скопируйте сгенерированный SSH-ключ.
    Примечание: в примере выше мы сгенерировали ключ типа DSA, но можно также использовать RSA тип. Чтобы сгенерировать такой ключ, выполните те же операции, заменив значение dsa на rsa в команде.

    Для Windows


    1. Загрузите и запустите предпочитаемую утилиту для генерации SSH ключей, например, PuTTYgen:

    image

    2. Укажите следующие параметры:
    • выберите тип ключа (SSH-2 RSA или SSH-2 DSA)
    • введите желаемое количество бит (например, 2048)

    Нажмите Generate.

    image

    3. Скопируйте сгенерированный ключ из поля вывода в верхней части окна.

    image


    Добавление SSH ключа


    Теперь вы можете добавить сгенерированный SSH ключ в ваш аккаунт Jelastic.

    1. Откройте панель управления Jelastic и нажмите кнопку Settings в верхнем правом углу.

    image

    2. В открывшейся вкладке Account settings перейдите к разделу SSH Access.

    image

    3. Нажмите на кнопку Add SSH Key и скопируйте предварительно сгенерированный ключ в поле Key. Поле Title будет заполнено автоматически, если ваш ключ уже имеет название.

    image

    Нажмите Add Key.

    4. Как результат, добавленный SSH ключ появится в списке.

    image

    Таким же образом вы можете добавить несколько ключей или удалить их, если они не нужны.
    Примечание: добавленный SSH-ключ прикрепляется ко всему вашему аккаунту, а не только к отдельному окружению.


    SSH доступ к аккаунту Jelastic


    Теперь давайте посмотрим, каким образом можно получить доступ к аккаунту Jelastic со всеми его окружениями и контейнерами через SSH.

    Откройте Jelastic и перейдите к верхней панели инструментов. Нажмите на кнопку Settings.

    image

    В открывшейся вкладке Account settings перейдите к пункту SSH Access.

    Чтобы открыть ваш SSH шлюз, перейдите по ссылке в примечании. Как результат, вы автоматически получите доступ к Shell Handler через консоль.

    Или же просто скопируйте указанную командную строку и запустите ее через консоль (SSH клиент).

    image

    Следующие шаги для получения SSH доступа к аккаунту зависят от используемой операционной системы:
    • Linux/MacOS
    • Windows

    Для Linux/MacOS


    1. Откройте терминал и введите строку SSH подключения из вкладки Settings панели SSH Access.

    Примечание: Чтобы избежать ошибок доступа/подключения, все команды должны быть выполнены из-под учетной записи того же пользователя локального компьютера, что использовался и во время генерации пары SSH ключей.

    image

    2. В результате вы увидите список окружений, доступных на вашем аккаунте.
    Для выбора необходимого окружения введите его номер в списке.

    Примечание: Вы можете получить доступ только к запущенному окружению.

    image

    3. После этого откроется список контейнеров выбранного окружения.

    Рядом с каждым контейнером указан node ID идентификатор и LAN IP адрес. Чтобы получить доступ к контейнеру, введите его порядковый номер.

    image

    4. Теперь вы можете приступать к настройке необходимых конфигураций.

    image

    Доступ к командной оболочке связан с определенными рисками, т.к. можно случайно повредить ваше приложение. Поэтому пожалуйста, будьте аккуратны при выполнении любых операций изнутри контейнера.

    Для Windows


    Чтобы установить SSH подключение для операционной системы Windows, на вашей локальной машине должен быть приватный ключ, который соответствует ранее добавленному в панель управления Jelastic открытому. Следовательно, выполните следующие шаги:

    1. Сохраните приватную версию вашего SSH ключа (мы используем утилиты PuTTY в качестве примера)

    image

    2. Загрузите и запустите PuTTY SSH-агент (он называется Pageant). В отрывшемся окне нажмите кнопку Add key и выберите ваш локальный файл с приватным SSH-ключом.

    image

    3. После этого можно нажать кнопку Close. Pageant будет свернут в панель задач. Не закрывайте эту программу до тех пор, пока ваша сессия SSH не будет завершена, иначе подключение будет прервано.

    4. Загрузите и запустите ваш клиент SSH (например, PuTTY). Перейдите во вкладку Session в списке слева.

    5. Напечатайте в поле Host Name (or IP address) строку SSH-соединения из вкладки Settings > SSH Access панели управления Jelastic. Также введите номер порта — 3022.

    image

    Нажмите кнопку Open.

    6. Вы увидите консоль со списком окружений, доступных вашему аккаунту. Дальнейшие шаги аналогичны инструкции для Linux/MacOS.


    Прямой SSH доступ к контейнеру


    Также вы можете перейти непосредственно к необходимому контейнеру, пропустив шаги выбора окружения и сервера.

    Для этого необходимо знать ID требуемого контейнера. Его можно получить, используя описанную ранее методику SSH-доступа через интерактивное меню. Там вы можете увидеть список доступных контейнеров и их ID (значения в колонке nodeid).

    image

    Чтобы войти в нужный контейнер, используйте значение его nodeid в следующей команде:

    ssh {nodeid}-{uid}@{SSH_gateway} -p 3022

    Значения параметров {uid} и {SSH_gateway} можно найти в панели управления Jelastic (Settings > SSH Access).

    Например, чтобы получить доступ к контейнеру MySQL-5.5.34 нашего текущего окружения, необходимо ввести следующую команду:
    ssh 6481-97@gate.jelastic.com -p 3022

    Эта возможность может быть полезна во время работы с инструментами для развертывания приложений и настройки удаленных контейнеров (например, Capistrano).


    Выводы


    Надеемся, эта информация окажется полезной для тех из вас, кто хотел бы разобраться в широких возможностях платформы Jelastic поглубже. Больше деталей можно найти в дополнительной документации.
    Jelastic
    Jelastic DevOps PaaS для хостеров и ISV
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 4

      0
      Если не секрет, что использовали OpenSSH или Apache Mina?
        0
        Не секрет, ни то ни другое, использовали python с фреймворком twisted, полностью самописная штука.
        0
        А что делать, если нет раздела SSH Access (jelastic v.2.2.4)?
          0
          Скорее всего у вас триальный аккаунт и SSH доступ лимитирован хостером. Перейдите на полную версию или же обратитесь в поддержку хостинг провайдера.

          Only users with full accounts can post comments. Log in, please.