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 глибше. Більше деталей можна знайти на додаткової документації.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.