# Android OpenBSD SSH Implementation ## Структура Приложение использует библиотеку JSch для установления соединения с удалённым сервером, в качестве алгоритма шифрования используется Diffie-Hellman. Приложение автоматически создаёт и сохраняет ключи в базе данных sqlite, ключи удаляются вместе с профилем. Взаимодействие с shell происходит через эмулятор терминала который отрисовывает вывод терминала в PlainText, команды записываются в input field который целиком их отсылает по установленному каналу SSH 2.0. Всвязи со сложностью реализации горячих клавиш в консоли на телефонном клиенте было принято решение создать 3 кнопки в интерактивном терминале для 3-х наиболее популярных горячих клавиш: "Ctrl+C" (прерывание процесса), "Ctrl+D" (выход из окружения), "Ctrl+L" (очистка терминала) --- # Инструкция по использованию ## 1 Запуск Запустите приложение кликнув по логотипу на рабочем столе телефона, вы увидете меню редактирования подключения ![android-1](https://git.linuxp.tech/helldh/static-files/raw/branch/main/android/android-1.png) ## 2 Создание профиля Заполните поля профиля подключения, кликните по кнопке "Save Profile", можете назвать ваш профиль как вам удобно ![android-2](https://git.linuxp.tech/helldh/static-files/raw/branch/main/android/android-2.png) ## 3 Проверка подключения Проверьте правильность введённых вами данных, кликните на кнопку "Connect SSH", если данные для подключения правильные вы увидите следующий вывод в логах приложения ![android-3](https://git.linuxp.tech/helldh/static-files/raw/branch/main/android/android-3.png) ## 4 Содержимое домашней директории Так-же вы можете не открывая интерактивный терминал для теста запустить команду, которая отображает содержимое домашней директории ![android-4](https://git.linuxp.tech/helldh/static-files/raw/branch/main/android/android-4.png) ## 5 Интерактивный терминал Нажмите на кнопку "Open Interactive Terminal", вы попадёте в эмулятор терминальной сессии ![android-5](https://git.linuxp.tech/helldh/static-files/raw/branch/main/android/android-5.png) ## 6 Ввод команд Команды в интерактивном терминале вводятся через input field ниже эмулятора терминала, отправляются команды по кнопке "Send" ![android-6](https://git.linuxp.tech/helldh/static-files/raw/branch/main/android/android-6.png) ## 7 Вывод команд Вывод команд отображается в эмуляторе терминала выше поля ввода ![android-7](https://git.linuxp.tech/helldh/static-files/raw/branch/main/android/android-7.png) ## 8 Блокирующий вывод Некоторые команды могут блокировать ввод других команд, что бы "убить" блокирующий процесс нажмите на кнопку "Ctrl+C" ![android-8](https://git.linuxp.tech/helldh/static-files/raw/branch/main/android/android-8.png) ## 9 Блокирующее Внутреннее окружение Некоторые команды могут запускать своё внутреннее окружение блокирующее доступ к родительскому терминалу, что бы выйти из такого окружение нажмите на кнопку "Ctrl+D" ![android-9](https://git.linuxp.tech/helldh/static-files/raw/branch/main/android/android-9.png) ## 10 Выход из сессии Будьте осторожны ! Нажатие на "Ctrl+D" будучи в родительском терминале "убьёт" SSH подключение ![android-10](https://git.linuxp.tech/helldh/static-files/raw/branch/main/android/android-10.png) ## 11 Очистка терминала Если вам нужно полностью очистить длинный вывод в эмуляторе терминала нажмите на кнопку "Clear" ![android-11](https://git.linuxp.tech/helldh/static-files/raw/branch/main/android/android-11.png)