В наши дни смартфоны оснащены намного мощной начинкой, чем нужно для запуска легковесного SSH клиента для подключения к VPS (виртуальный частный сервер) и решить какую-то критическую проблему, если под рукой нет ноутбука и Wi-Fi.
SSH клиенты для смартфонов
На самом деле, все мобильные SSH-клиенты позволяют делать то же самое: подключиться по SSH к серверу. Друг от друга они отличаются тем, насколько удобны они в использовании на мобильном устройстве. Ведь клавиатура на мобильном устройстве имеет свои особенности, основное её предназначение переписка и набор коротких сообщений, а не кодирование. Даже набирать -
и /
стандартной iOS-клавиатуре довольно сложно, так как требуется нажать три кнопки.
Хорошие мобильные SSH-клиенты упрощают этот процесс. Например, Termius - очень популярный бесплатный SSH-клиент для iOS и Android. Интерфейс самого терминала предоставляет обычную клавиатуру, а над ней расположены элементы управления, которые не часто используются на обычной мобильной клавиатуре. Например, для часто используемой клавиши-модификатор Ctrl
у Termius есть отдельная кнопка рядом с Esc
. Так же в командной строке часто используются тире и косые черты /
, поэтому под них также выделены отдельные клавиши, что сильно упрощает процесс набора.
Вне терминала тоже интерфейс очень функциональный: удобное создание новых SSH ключей, а также есть опция передачи ключей на Macbook, для последующего добавления в список authorized_keys
на сервере.
Termius доступен бесплатно для платформ iOS и Android, но такие функции как вкладки, переброс агента SSH, SFTP подключение доступно только Pro версии, подписка на которую стоит $8 в месяц.
Prompt - это премиум-клиент для iOS, который сочетает в себе множество полезных функций. Он имеет тот же дизайн панели быстрого доступа, что и Termius, но может меняться в зависимости от приложения.
Это приложение также поддерживает сохранение часто используемых команд как шорт-каты, что освобождает от постоянного ввода одних и тех же команд. Оно стоит 15 долларов, но это разовая цена и включает все премиум функции.
Mosh
Mosh является альтернативой SSH и построен специально для мобильных пользователей, так как использует UDP. Традиционное SSH ожидает ответа сервера перед тем, как отображать введенные символы, что сильно раздражает при подключениях с большим временем задержки. В то время как 4G имеет хорошую среднее время отклика - 50 мс, то при соединении по 3G, задержка может вырасти до более чем 300 мс. Mosh помогает обходить это ограничение, и значительно уменьшает время отклика:
Кроме этого, Mosh не разрывает соединение, если интернет оборвался, что часто случается с мобильным интернетом. В любом случае, можно использовать tmux или screen, но иметь под рукой Mosh, который поддерживает эту функцию «из коробки» очень удобно.
Mosh как опция включена в Termius и Blink. А вот интеграции с Prompt нет, так как последняя не распространяется свободно.
Используйте tmux или screen для непрерывной работы
После установления соединения нужно подключиться к tmux или screen. Tmux терминальный мультиплексор, который позволяет запускать несколько терминальных сессий в одном окне. Также он дает возможность отключаться от сессии при том, не завершая его на сервере. Таким образом, откуда угодно можно подключиться к запущенной сессии. Например, можно запустить сессию на компьютере, а потом подключиться к ней со смартфона.
Если tmux не установлен, сделать это можно командой:
sudo apt-get install tmux
А затем, дело за малым: создано новую сессию и задать ей имя:
tmux new -s session
После этого в нижней части окна появится строка состояния, которая указывает на то, что вы работаете в tmux. Чтобы отключиться от сессии введите команду:
tmux detach
Или просто нажмите комбинацию клавиш Ctrl+B
, а затем D
, но может быть неудобно делать это на смартфоне. Вместо этого можно использовать команду exit
.
Сессия продолжает выполняться на сервере; запущенные программы, журнал команд и все остальное продолжают выполняться в фоновом режиме, даже если вы не подключены к сети.
Для повторного подключения к сеансу используйте:
tmux a -t session
В некоторых SSH-клиентах, таких как Prompt, можно задать команду startup
, которая будет выполняться при подключении к ней. Таким образом, если на сервере запущен сеанс tmux, к которому всегда подключаетесь, используйте команду startup
для автоматического подключения.