- Запускаем SSH сервер на Android устройстве с использованием Termux
- Подключение к серверу с помощью PuTTY.
- Как подключиться к другому устройству через Termux
- Предварительная настройка
- Tmate
- Возможные ошибки
- Termux шаг за шагом (Часть 2)
- Шаг 4
- Погружаемся в кроличью нору Termux:API
- Несколько примеров Termux:API
- Шаг 5
- Установим Python и nano
- HelloWorld на Python в Termux
- Шаг 6
- Bash-скрипты
- Bash-скрипт с Termux:API
- Шаг 7
- Сделаем хоть что-то полезное
Запускаем SSH сервер на Android устройстве с использованием Termux
У меня часто бывают ситуации, когда мне приходится исправлять или дополнять свой код с чужого ПК. Однако, не на всех рабочих станциях есть мое рабочее окружение. Также, установка нужных компонентов, а потом их удаление занимает лишнее время. Поэтому мне в голову пришла идея — сделать удаленное рабочее окружение, которое всегда будет рядом.
С этим мне решил помочь Termux.
Из названия статьи вы скорее всего поняли, о чем сейчас пойдет речь. Однако, сразу хочу предупредить, что данный способ может подойти не всем.
Итак, приступим.
Нам понадобится сам эмулятор терминала Linux — Termux. Это отличное мобильное приложение, которое подходит не только для сервера, но и для других целей.
Изначально нужно установить OpenSSH пакет.
Далее, нужно сгенерировать ключ для подключения к нашему серверу.
В директории .ssh создалось два файла — id_rsa и id_rsa.pub . Копируем содержимое файла id_rsa.pub в файл authorized_keys .
Теперь мы можем запустить сервер и к нему может подключиться любой, у кого есть ключ. Для запуска сeрвeра используется команда.
Если вам надо посмотреть включен сервер или выключен.
Подключение к серверу с помощью PuTTY.
Мы запустили сервер и теперь нам надо к нему подключиться. Сперва нужно скопировать ключ в память Android устройства, чтобы потом его можно было скопировать на машину, с которой мы будем подключаться. Для этого, нужно дать доступ к памяти устройства.
Далее, копируем ключ в память.
После этого, копируем файл на машину.
Теперь нам понадобится PuTTYgen.
Запускаем программу и загружаем файл, нажимая на кнопку Load. После этого сохраняем приватный ключ (save private key) в формате *.ppk.
Отлично, теперь у нас есть ключ. Осталось только подключиться.
Скачаем сам PuTTY.
Запускаем его. В поле IP адреса вводим локальный адрес нашего Android устройства. Чтобы посмотреть локальный адрес, нужно зайти в Termux и ввести команду.
В разделе wlan0 будет написан локальный IP адрес.
В поле порта вводим стандартный порт для ssh сервера — 8022. Далее, переходим в SSH → Auth и нажимаем кнопку Browse.
Находим тот файл, который сохранили в формате *.ppk, и нажимаем Open. После запуска нажимаем Enter.
Все, мы подключились.
Далее вы можете настроить ваше окружение и подключаться к нему в любое время.
Источник
Как подключиться к другому устройству через Termux
Хей-йо, друзья. Сегодня поговорим о обходе NAT. Представим вы забыли устройство дома, но вам срочно нужно к нему подключиться и выполнить несколько команд.
Доступ к вашему устройству можно получить через интернет, даже если вы находитесь за устройством NAT (например, маршрутизатор Wi-Fi или мобильный интернет). Есть несколько способов добиться этого, но потребуется установка дополнительного программного обеспечения и небольшая настройка. Приступим.
Прошу обратить внимание! Автор данной статьи не несёт ответственности за любые последствия вслед использования предоставленной информации. Все материалы опубликованы исключительно в образовательных целях!
Предварительная настройка
Так как все перечисленные ниже примеры удалённого управления осуществляются по ssh, нам нужно его настроить.
Установите его, выполнив
Затем для базовой безопасности установите пароль пользователя командой passwd . Этот пароль затем будет запрашиваться при удалённом подключению к устройству
Обратите внимание, что пароль при вводе не будет отображаться. Если вам потребуется его сменить, в любой момент вновь воспользуйтесь этой командой, однако не забудьте после этого перезапустить сервис(ы) использующие этот пароль.
Теперь запустите сервис ssh. Запускайте каждый раз, когда вам потребуется воспользоваться методами удалённого подключения, описанные ниже
Доступ к устройству через Tor является наиболее безопасным и эффективным способом — предлагается надёжное сквозное шифрование (при этом службы onion не используют выходную ноду), ваша служба не будет видна в простом интернете.
1. Установка нужных пакетов:
Основной пакет — это tor . Установите его, выполнив эту команду:
Для доступа к сети Tor установите torsocks :
2. Настройка Onion Service
Вам придется изменить файл конфигурации по умолчанию для tor ( $PREFIX/etc/tor/torrc ). Я буду использовать редактор nano, но сперва его нужно установить
Теперь редактируем конфигурационный файл
Вот пример настройки SSH Onion Service:
Затем вам нужно создать каталог, в котором будет храниться информация о скрытом сервисе:
Теперь можно выполнить в консоли tor . Выполнив эту команду, ваше устройство благодаря настройке на предыдущих шагах становится сервером. Если запуск прошел успешно, вывод должен быть таким
Termux one 💖
Так как сервис tor занял текущую сессию терминала, откройте вторую сессию Termux и узнайте имя своего хоста службы onion:
Вывод должен быть примерно таким: g3yv3tvqrbow7koz.onion
3. Доступ к вашему сервису
Прежде всего убедитесь, что на клиенте (вашем другом устройстве с коего вы хотите удалённо подключиться к Termux) tor запущен, и у вас есть всё необходимое программное обеспечение для доступа к сети Tor (в данном случае пакет torsocks ).
Чтобы получить доступ к луковому сервису, созданному на предыдущем шаге, запустите:
Конечно же используя своё имя хоста. Если все в порядке, вывод должен быть примерно таким:
Помните, что tor должен работать на обеих сторонах (клиент/сервер), иначе вы получите ошибку соединения.
Tmate
Tmate — это терминальный мультиплексор с мгновенным обменом терминалами, то есть он позволяет использовать сеанс терминала с несколькими доверенными пользователями. Другими словами вы можете «транслировать» содержимое вашего терминала другим пользователям, а также позволять им пользоваться вашим терминалом.
Утилита может быть установлена с помощью pkg install tmate .
1. Выполните следующую команду в Termux:
Termux one 💖
2. Как только вы выполнили предыдущий шаг, вы должны увидеть цветную линию внизу экрана со ссылкой. Сохраните её, это ваш токен подключения. Выглядит он примерно так:
3. На другом устройстве, с которого вы хотите подключиться к Termux, запустите
После подключения, ваш экран будет занят таким же содержимым как на картинке выше. Вдобавок к этому отобразится строка примерно следующего содержания:
Чтобы скрыть меню как на картинке выше, нажмите «Q» или сочетание клавиш «Ctrl + C«. А чтобы вернуть его обратно выполните
Обратите внимание на вырезанную часть предыдущего скриншота:
Termux one 💖
Как видим tmate сгенерировал четыре ссылки. Ссылки обведённые красным прямоугольником нужны для режима «только чтение», то есть подключённый по этим ссылкам пользователь может только видеть что делает другой пользователь или пользователи. Как вы уже поняли, ссылки ниже позволяют подключившемуся полноценно пользоваться терминалом. Следует также знать, что есть два типа сессий: первая это web-сессия, вторая — ssh-сессия. То есть пользоваться терминалом можно и через браузер. Однако я бы всегда советовал вам использовать ssh сессию, это гораздо безопаснее, конфидинциальнее и экономнее.
Возможные ошибки
Ошибка выше обычно связана с тем, что tor возможно уже запущен, о чём сообщается в логах. Цветами выделено сообщение, в котором предупреждается о невозможности получить доступ к порту 9050 нашего локального айпи адреса т.к порт уже используется. Ну а по скольку порт 9050 обычно используется для tor, следует логичный вопрос: tor уже запущен?
Источник
Termux шаг за шагом (Часть 2)
В прошлой части мы с вами познакомились с базовыми командами Termux’а, настроили SSH соединение с ПК, научились создавать alias’ы и установили несколько полезных утилит. В этот раз нам предстоит шагнуть еще дальше, мы с вами:
- узнаем про Termux:API
- установим Python и nano, а также напишем «Hello, world!» на Python
- узнаем про bash-скрипты, и напишем скрипт с использованием Termux:API
- используя bash-скрипт, Termux:API и Python напишем простую программку
Поскольку мы теперь понимаем, что делают вводимые команды, то со следующего шага я не буду так подробно расписывать каждое действие, но там где могут быть затруднения, пояснять буду обязательно.
Я часто применяю alias’ы, поэтому используемые в этой части сокращения показаны здесь:
План готов, можно приступать! И конечно же не забывайте про «волшебный Tab» (См. Часть 1).
Шаг 4
Погружаемся в кроличью нору Termux:API
API как много в этом слове для сердца кодера слилось
Если не затрагивать тему Termux:API, то все наши шаги можно было свести к простому пересказу какой-нибудь брошюры типа «Линукс для чайников», как было справедливо подмечено в комментариях к первой части.
Для начала установим Termux:API из Google Play Market’а (после не помешает перезапустить Termux):
Далее нам нужно установить пакет API в консоли Termux’а:
Для экспериментов я использую Android 5.1.1, для владельцев Android 7 нужно «защитить» Termux: API, зайдя в ‘Настройки’ > ‘Защищенные приложения’, в противном случае вызовы API, такие как termux-battery-status , будут зависать. (См. wiki проекта)
Теперь стоит поближе познакомится с приобретенными возможностями. Самое свежее и подробное описание Termux:API можно найти на wiki проекта. Я же постараюсь выбрать самое наглядное и интересное, что позволит набить руку для самостоятельной работы в дальнейшем.
Несколько примеров Termux:API
- termux-battery-status
Возвращает состояние батареи
termux-brightness
Устанавливает яркость экрана от 0 до 255
termux-toast
Показывает временное всплывающее уведомление
termux-torch
Включает фонарик
termux-wifi-scaninfo
Возвращает информацию о последнем сканировании сетей Wi-Fi
Нетрудно заметить, что возвращаемые значения являются строками, словарями, списками словарей, в общем типами данных, с которыми прекрасно работает Python, поэтому следующим шагом мы его установим.
Шаг 5
Установим Python и nano
Для установки Python’а пишем в терминале:
Теперь у нас установлен 2 и 3 Python.
За время работы над статьей, я открыл для себя еще один текстовый редактор nano, который приглянулся мне больше чем vim, давайте его установим:
Пользоваться им проще чем vim’ом, и nano имеет более дружественный интерфейс. На Android устройстве все же удобнее vim.
HelloWorld на Python в Termux
По большому счету можно было обойтись и без этого пункта, но поставить Python в Termux и не написать HelloWorld, на мой взгляд, моветон.
Я не ставлю своей целью учить кого-либо Python’у, так что не знающие могут просто скопировать код (или начать изучать самостоятельно, благо литературы хватает), а знающие могут и сами что-нибудь наваять. А я «под шумок» еще покажу способ вводить текст в терминале без редактора.
Если в процессе ввода вы не заметили ошибку и уже нажали Enter, то перейти на строку выше не получится, для этого закончите ввод нажав Ctrl + D (можно вообще прервать Ctrl + Z) и повторите все с начала. Поскольку мы использовали ‘>’ то файл будет переписан полностью. По этой причине не рекомендую использовать такой метод ввода, если вы не уверены что напишете код сразу без ошибок.
Шаг 6
Bash-скрипты
Bash-скрипты это замечательный способ автоматизации работы с терминалом. Скрипт представляет из себя файл с расширением .sh (расширение не обязательно) содержащий набор команд терминала часть из которых мы уже изучили. Вот список большинства команд, все должно работать, но обратите внимание, что это список для «взрослого» Linux’а, а не для Termux’а, а вот просто шикарный материал по bash-скриптам.
При помощи скриптов можно автоматизировать практически все монотонные действия. Напишем простейший bash-скрипт выводящий значение из созданной им же переменной, я снова воспользуюсь cat’ом, вы же можете использовать нормальный текстовый редактор, а особо желающие себя потренировать могут использовать echo.
Один добрый человек справедливо заметил, что команда export лишняя если переменная используется в рамках одного скрипта, так как вынесет переменную в окружение, то есть сделает ее доступной вне скрипта, занимая лишнюю память. Таким образом после выполнения test.sh мы сможем обращаться к переменной $str из командной строки.
Bash-скрипт с Termux:API
Давайте напишем уже что-нибудь отличающееся от пресловутых HelloWorld’ов, но столь же бесполезное. Наш скрипт будет:
- выполнять запрос API termux-battery-status
- сохранять полученные данные в файл test.txt
- выводить данные из файла на экран
- выполнять написанную ранее программу hello-world.py
- полученные от программы данные записывать в файл test.txt
- выводить данные из файла на экран
- переносить данные из файла в буфер обмена
- выводить на экран содержимое буфера обмена
- выводить всплывающее сообщение с данными из буфера обмена
Сначала создадим папку для работы и скопируем туда hello-world.py как test.py, создадим в этой папке файлы test.sh и test.txt:
Теперь любым удобным способом в файл test.sh запишем скрипт:
Теперь находясь в папке bashscript пишем ./test.sh наблюдаем в терминале на Android устройстве:
Вот мы и написали запланированный bash-скрипт. Можно разбавить его выводом в консоль информации по выполнению каждого действия (при помощи echo), это оставлю для читателей.
Шаг 7
Сделаем хоть что-то полезное
Сформулируем техзадание
Приложение должно после запуска помещать в буфер обмена случайную строку из файла и оповещать об этом всплывающим сообщением.
За основу возьмем bash-скрипт, случайную строку из файла будем извлекать при помощи подпрограммы на Python’е. Составим план работы скрипта:
- Запустить подпрограмму
- Передать результат работы подпрограммы в буфер обмена
- Вывести всплывающее сообщение
Определимся с названиями директории и файлов приложения:
- папка rndstr в домашней директории
- source — файл из которого будем брать строки
- rndstr.py — подпрограмма выводящая в консоль случайную строку из файла source
- rndstr.sh — файл скрипта
Создаем директорию приложения и переместившись в нее создаем там файлы.
Первые два пункта плана скрипта можно объединить конвейером, в итоге, используя Termux:API получаем:
В файл source вы можете поместить любой текст логически разделенный на строки, я решил поместить афоризмы:
Нам осталось создать подпрограмму извлекающую случайную строку из файла source.
Распишем алгоритм работы подпрограммы:
- Открываем файл source
- Считаем количество строк в открытом файле
- Закрываем файл (нечего его лишнее время открытым держать)
- Генерируем случайное целое число в пределах количества строк файла source
- Открываем файл source
- Выводим строку под номером сгенерированного числа
- Закрываем файл
Реализуем алгоритм на Python (я пишу под Python 3.7):
После того как файлы созданы и записаны, нужно дать права на исполнение файлу rndstr.sh , и создать alias для быстрого запуска.
Теперь введя в терминале rnst мы получим в буфер обмена случайный афоризм, который, например, можно использовать в переписке.
Вот мы и написали хоть что-то полезное. Относительно полезное.
Я намеренно в последнем шаге не стал приводить скриншоты и не разобрал подробно некоторые действия, расписав только содержимое файлов, чтобы у читателей была возможность поработать самостоятельно.
Изначально я планировал показать в этом цикле как пользоваться nmap, sqlmap, но и без меня уже много статей на эту тему. Если есть желание, чтобы я продолжил «Termux шаг за шагом», то ниже есть опрос, а в комментариях можете предложить о чем еще написать.
Источник