SFTP и FISH протоколы для SSH доступа к контейнерам Jelastic
Ранее, мы рассказали о SSH доступе к облаку Jelastic и его особенностях: SSH шлюз как новый элемент инфраструктуры генерация и добавление SSH ключа в аккаунт Jelastic прямой SSH доступ к контейнерам В этой статье мы хотели бы обратить внимание на некоторые дополнительные способы SSH доступа к контейнерам Jelastic, а именно, используя SFTP (SSH File Transfer Protocol) или FISH (Files transferred over Shell protocol) протоколы. Данные протоколы позволяют проводить различные операции с файламы (доступ, передача и др.) по защищенному каналу.Поддержка SFTP (Secure File Transfer Protocol) в Jelastic обеспечивается путем реализации потокового демона для обработки SFTP соединений. Это позволяет вам получать доступ, управлять и перемещать файлы в контейнер через SSH шлюз, и, таким образом, быть уверенным в безопасности ваших данных.
FISH протокол (Files transferred over Shell protocol) поддерживается множеством популярных FTP-клиентов и файл-менеджеров (например Midnight Commander, Konqueror, lftp, Krusader и т.д.). Это дает возможность безопасно управлять файлами в контейнере.
А теперь, давайте рассмотрим несколько примеров использования данных протоколов.
Для того, чтобы получить доступ к необходимому контейнеру через SFTP протокол, на вашей локальной машине должен быть приватный SSH ключ, который соответствует ранее добавленному в Jelastic аккаунт открытому.Для пользователей Linux/MacOS данный приватный ключ автоматически сохраняется во время генерации пары ключей.
Если же вы пользуетесь Windows, то вам необходимо дополнительно сохранить соответствующий приватный ключ (в качестве примера мы используем приложение PuTTYgen):
Теперь можно приступать к установлению SFTP соединения.
1. Запустите ваш FTP-клиент с поддержкой протокола SFTP.Для примера мы воспользуемся программой Filezilla. Выберите пункт Edit > Settings в меню приложения.
2. В открывшемся окне перейдите к разделу SFTP и, используя кнопку Add keyfile, выберите ранее сохраненный приватный SSH ключ.Нажмите OK.
3. После этого, перейдите к пункту меню File > Site Manager.
4. В появившемся окне нажмите кнопку New site и укажите следующие параметры:
в поле Host введите ваш SSH хост (gate.{домен_хостера}) в поле Port вставьте значение 3022 в выпадающем списке протоколов выберете SFTP установите значение Normal для опции Logon Type в поле User введите Node ID контейнера, к которому необходимо получить доступ (это значение можно найти в списке контейнеров окружения в отдельной колонке nodeid, используя SSH консоль), и через дефис добавьте ваш User ID (число перед символом @ в строке для SSH соединения). Нажмите Connect.
5. Как только соединение будет установлено, вы увидите список папок данного контейнера в соответствующей части окна программы.
На этом все! Теперь вы можете приступать к управлению и передаче файлов вашего приложения через защищенный канал.
Давайте рассмотрим пример использования протокола FISH для установки защищенного соединения между удаленным контейнером и программой Midnight Commander.1. Для начала, убедитесь что на вашей локальной машине есть приватный SSH ключ, который соответствует ранее добавленному на панель управления Jelastic открытому.
По умолчанию путь к сгенерированному ключу будет /home/{username}/.ssh/id_rsa или /home/{username}/.ssh/id_dsa (в зависимости от типа ключа).
2. Проверьте права собственности и атрибуты вашего приватного ключа с помощью следующих команд:
для RSA ключаls -la /home/{username}/.ssh/id_rsa для DSA ключаls -la /home/{username}/.ssh/id_dsa В колонке владельца ключа должно значиться имя вашего пользователя, а атрибуты должны быть 400 или 600. Другими словами, ваш ключ не должен быть доступен для чтения другими пользователями, иначе соединение установлено не будет.3. Установите и запустите Midnight Commander.
4. Вызовите панель меню нажатием клавиши F9, и выберите пункт Shell link в меню левой или правой вкладки.
5. В открывшемся диалоговом окне Shell link to machine введите через дефис следующие значения:
Node ID контейнера, к которому необходимо получить доступ (это значение можно найти в списке контейнеров окружения в отдельной колонке nodeid, используя SSH консоль) ваша строка для SSH-соединения ({user_id}@{ssh_host}:3022) Нажмите OK.
6. По завершении установки соединения, в выбранной панели (в нашем случае — справа) будут отображены файлы и папки контейнера.
Теперь вы можете безопасно управлять файловой системой вашего контейнера, используя RSH команды. Удачи!
Таким образом, с помощью протоколов SFTP и FISH, вы можете управлять файлами внутри контейнера по защищенному каналу. Как бонус, вы получаете чрезвычайно быструю передачу файлов и возможность управления атрибутами файлов и директорий. Попробуйте сами и убедитесь во всех преимуществах SSH доступа к Jelastic Cloud!