Ошибка Connection refused при попытке подключиться по SSH с телефона чаще всего означает, что на сервере не запущен SSH-демон, порт 22 закрыт файрволом или вы используете мобильный интернет, где провайдер блокирует входящие соединения. Прежде чем менять клиент на Android, проверьте доступность сервера с любого другого устройства — это сразу локализует проблему.
SSH-терминал на Android превращает смартфон в полноценный инструмент администрирования: можно перезапустить службу на удалённом сервере, отредактировать конфигурационный файл или посмотреть логи, не доставая ноутбук. В этой статье разберём, какие клиенты существуют, как настроить подключение по паролю и по ключу, а также как диагностировать типовые ошибки соединения.
Какие SSH-клиенты доступны на Android
Выбор клиента зависит от задачи. Для разового подключения к домашнему серверу достаточно простого приложения с графическим интерфейсом, а для постоянной работы важны поддержка ключей, фрагментация сессий и синхронизация настроек между устройствами.
Наиболее известные решения — Termius, JuiceSSH и Termux. Первые два представляют собой классические SSH-клиенты с удобным интерфейсом, третий — полноценная эмуляция терминала Linux, где SSH — лишь одна из множества возможностей. Доступность конкретных приложений и их функций может отличаться в зависимости от региона и версии магазина приложений, поэтому проверяйте актуальное описание на странице установки.
- 🔐 Termius — клиент с синхронизацией хостов между устройствами, поддержкой ключей и SFTP; часть функций доступна по подписке.
- 📱 JuiceSSH — лёгкий клиент с поддержкой фрагментов команд, тем оформления и локальных плагинов.
- 🐧 Termux — эмулятор терминала с пакетным менеджером; SSH-клиент устанавливается командой
pkg install openssh. - ⌨️ Клиенты на базе ConnectBot — открытый исходный код и минимализм, подходят для базовых задач.
Подключение по паролю: пошаговая настройка
Самый простой сценарий — подключение по логину и паролю. Вам понадобятся три данных: IP-адрес или домен сервера, порт (по умолчанию 22, но администраторы часто меняют его) и учётные данные. В Termius или JuiceSSH создайте новое подключение, укажите хост, порт, имя пользователя и пароль, затем запустите сессию.
В Termux процедура выглядит иначе — используется стандартная команда OpenSSH:
ssh username@192.168.1.10 -p 22
При первом подключении клиент покажет отпечаток ключа сервера и попросит подтверждение. Сверьте отпечаток с тем, что указан на самом сервере (команда ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub), если есть доступ к нему другим способом — это защита от подмены сервера злоумышленником.
☑️ Проверка перед первым подключением
Подключение по SSH-ключу
Аутентификация по ключу безопаснее пароля: закрытый ключ хранится на телефоне, а на сервере лежит только открытая часть. Большинство клиентов умеют генерировать пару ключей прямо в приложении — ищите раздел вроде «Keychain» или «Ключи» в настройках. В Termux пара создаётся командой ssh-keygen -t ed25519.
После генерации открытый ключ нужно добавить на сервер в файл ~/.ssh/authorized_keys соответствующего пользователя. В Termux для этого есть удобная команда:
ssh-copy-id username@server_ip
Если ssh-copy-id недоступна, скопируйте содержимое файла ~/.ssh/id_ed25519.pub и вставьте его на сервере вручную. Обратите внимание на права: каталог ~/.ssh должен иметь права 700, а файл authorized_keys — 600, иначе сервер может проигнорировать ключ.
⚠️ Внимание: закрытый ключ нельзя передавать третьим лицам, отправлять в мессенджерах без шифрования или хранить в открытом виде в заметках. Если телефон потерян или скомпрометирован, немедленно удалите соответствующий открытый ключ из authorized_keys на всех серверах.
Типичные ошибки подключения и их диагностика
Текст ошибки — главный ключ к причине сбоя. Разные сообщения указывают на разные уровни проблемы: сеть, службу на сервере или аутентификацию. Сначала прочитайте сообщение внимательно, а уже потом меняйте настройки.
| Ошибка | Вероятная причина | Что проверить |
|---|---|---|
| Connection refused | SSH-демон не запущен или другой порт | Статус службы sshd, номер порта |
| Connection timed out | Сеть недоступна, файрвол, неверный IP | Доступность сервера (ping), правила файрвола |
| Permission denied | Неверный логин, пароль или ключ не принят | Учётные данные, права на ~/.ssh |
| Host key verification failed | Изменился ключ сервера | Легитимность смены ключа, запись в known_hosts |
| No route to host | Проблема маршрутизации или сервер выключен | Состояние сервера, локальную сеть |
Отдельный случай — подключение через мобильный интернет к домашнему серверу. Многие операторы выдают «серые» IP-адреса (CGNAT), из-за чего проброс портов на домашнем роутере не работает. Возможные обходные решения — VPN до домашней сети (например, WireGuard на роутере, если он его поддерживает) или сервисы туннелирования, но конкретная реализация зависит от вашего оборудования и провайдера.
Безопасность SSH-сессий со смартфона
Телефон чаще теряется и подключается к публичным сетям, чем стационарный компьютер, поэтому требования к защите выше. Минимальный набор мер: блокировка экрана, шифрование устройства (на современных версиях Android оно включено по умолчанию) и отказ от сохранения паролей в открытом виде.
При работе через публичный Wi-Fi трафик SSH сам по себе зашифрован, однако стоит избегать сетей, требующих авторизации через сомнительные порталы. Если клиент поддерживает блокировку приложения по отпечатку пальца или PIN-коду — включите эту функцию.
- 🔑 Используйте ключи вместо паролей, а парольный вход на сервере по возможности отключите.
- 🚫 Не работайте под root напрямую — подключайтесь обычным пользователем и повышайте права через
sudo. - 📵 Не сохраняйте сессии с автоматическим входом на устройстве без блокировки экрана.
- 🔄 Своевременно обновляйте SSH-клиент — в старых версиях могут быть уязвимости.
⚠️ Внимание: сообщение «Host key verification failed» после переустановки системы на сервере — нормальное явление, но если вы сервер не переустанавливали, это может указывать на атаку «человек посередине». Не удаляйте запись из known_hosts, пока не убедитесь в легитимности нового ключа.
Дополнительные возможности: SFTP, проброс портов, Mosh
SSH — это не только командная строка. Большинство клиентов поддерживают SFTP для передачи файлов между телефоном и сервером: в Termius это встроенный файловый менеджер, в Termux — команды scp и sftp. Это удобно для загрузки конфигов или скачивания логов без установки отдельных программ.
Продвинутая функция — проброс портов (port forwarding), позволяющий обратиться через SSH-туннель к сервису, который не открыт наружу. В Termux локальный проброс настраивается так:
ssh -L 8080:localhost:80 username@server_ip
После этого веб-интерфейс сервера станет доступен на телефоне по адресу http://localhost:8080. Для нестабильных мобильных сетей полезен протокол Mosh: он удерживает сессию при переключении между Wi-Fi и мобильным интернетом, но требует установки серверной части и доступа по UDP.
Почему сессия SSH обрывается при блокировке экрана
Android агрессивно выгружает фоновые процессы для экономии заряда. Решения: в настройках батареи разрешите SSH-клиенту работу в фоне без ограничений, а в Termux используйте команду termux-wake-lock (пакет Termux:API) или сеанс внутри tmux на сервере — тогда при обрыве работа не потеряется.
Настройка SSH-сервера на самом Android
Обратный сценарий тоже возможен: смартфон может сам выступать SSH-сервером, чтобы к нему подключались с компьютера. В Termux для этого устанавливается пакет openssh, после чего сервер запускается командой sshd. Пароль задаётся командой passwd, а порт по умолчанию в Termux — 8022, а не 22, поскольку порты ниже 1024 требуют root-прав.
Подключение с компьютера в этом случае выглядит так:
ssh -p 8022 ip_телефона
Учтите, что поведение может отличаться в зависимости от версии Termux и Android: на новых версиях системы действуют ограничения на фоновые процессы и доступ к хранилищу. Актуальные детали установки проверяйте в официальной документации Termux — проект активно развивается, и рекомендации периодически меняются.
⚠️ Внимание: запущенный SSH-сервер на телефоне открывает точку входа в устройство. Используйте только ключевую аутентификацию, не выставляйте порт в интернет без необходимости и останавливайте sshd, когда он не нужен.
Часто задаваемые вопросы
Какой SSH-клиент для Android выбрать новичку?
Для первых подключений удобнее клиент с графическим интерфейсом — Termius или JuiceSSH: там не нужно запоминать команды, а хосты сохраняются в список. Termux стоит осваивать, когда понадобятся скрипты, tmux и другие инструменты командной строки.
Почему не удаётся подключиться к домашнему серверу через мобильный интернет?
Наиболее вероятная причина — «серый» IP-адрес от оператора (CGNAT), из-за которого проброс портов на роутере не работает. Проверьте, совпадает ли внешний IP на роутере с тем, что показывают сервисы определения адреса. Если адреса различаются, рассмотрите VPN до домашней сети или туннелирующие сервисы.
Безопасно ли хранить SSH-ключи на телефоне?
Да, при соблюдении мер: закрытый ключ должен быть защищён парольной фразой, устройство — блокировкой экрана и шифрованием. При потере телефона удалите соответствующий открытый ключ из authorized_keys на всех серверах.
Что делать при ошибке Permission denied (publickey)?
Проверьте, что открытый ключ добавлен в ~/.ssh/authorized_keys нужного пользователя на сервере, права на каталог .ssh — 700, на файл — 600, а клиент использует именно тот закрытый ключ. В Termux диагностику можно запустить с подробным выводом: ssh -v username@host.
Можно ли использовать SSH на Android без root-прав?
Да, для клиентских подключений root не требуется — все перечисленные приложения работают на обычном устройстве. Root понадобится разве что для запуска SSH-сервера на порту 22 или доступа к системным файлам самого Android.