Устранение неполадок
На этой странице рассматриваются распространённые проблемы Mobile SSH и первые проверки, которые стоит выполнить перед изменением настроек SSH на стороне сервера.
Не удаётся подключиться
Проверьте:
- На устройстве есть сетевой доступ.
- Имя хоста или IP-адрес сервера указаны верно.
- Порт SSH верен, обычно
22. - Брандмауэр, VPN, сеть оператора или сеть Wi-Fi не блокируют порт.
- SSH-сервер запущен и принимает подключения из сети, которую вы используете.
Если тот же хост работает с другого устройства, сравните точные хост, порт, имя пользователя, ключ и сетевой путь.
Подлинность сервера требует проверки
Обе платформы проверяют подлинность SSH-сервера до отправки учётных данных. На iOS новый ключ требует сверки отпечатка и действия Доверять и переподключиться. На Android параметр Настройки → Общие → Безопасность → Автоматически принимать новые SSH-идентификаторы включён по умолчанию: первый обычный ключ сохраняется автоматически, а следующие подключения должны ему соответствовать. Отключите параметр, чтобы проверять новые отпечатки до подключения.
Сверьте SHA-256 отпечаток нового или изменённого ключа с администратором по доверенному каналу. Изменение может означать замену сервера или обращение к неожиданному серверу; не удаляйте старую запись до проверки. Сохранённые идентификаторы доступны в настройках. Альтернативные адреса и промежуточные узлы не обходят проверку.
Android также поддерживает центры сертификации хостов и отзывы ключей с заданной областью действия. Неизвестные центры, просроченные или недействительные сертификаты и отозванные ключи блокируются даже при автоматическом принятии новых ключей. В iOS Настройки → Идентификаторы серверов → Импорт отозванных ключей принимает записи OpenSSH @revoked для Ed25519/ECDSA с заданной областью действия. Вставленный текст с неподдерживаемыми записями отклоняется целиком; записи CA, сертификаты, ключи RSA и хешированные имена хостов не поддерживаются. Отзывы отменяют прежнее доверие при новых и повторных подключениях, но не закрывают уже открытые соединения. Идентификаторы хостов и отзывы не входят в резервные копии. В iOS подтвердите неизвестный сервер в основном приложении перед отправкой файлов через расширение общего доступа.
Не удаётся подключиться через промежуточный сервер
Проверьте адрес и учётные данные каждого сохранённого бастиона, а также доступность первого узла с телефона. Каждый следующий узел должен быть доступен с предыдущего. Бастионы должны разрешать дальнейшую передачу TCP с учётом ограничений permitopen. Маршрут должен использовать SSH, не содержать циклов и разворачиваться максимум в восемь переходов.
Удалённый или не найденный бастион не заменяется прямым подключением. Исправьте маршрут и подключитесь заново. На Android состояние подключения и журнал входов указывают сбойный промежуточный узел отдельно от конечного сервера.
Ошибка аутентификации
Проверьте:
- Правильность написания имени пользователя.
- Пароль или парольную фразу ключа.
- Разрешает ли сервер вход по паролю, по ключу или оба способа.
- Соответствует ли закрытый ключ открытому ключу в
authorized_keysпользователя сервера. - Был ли файл ключа импортирован полностью, включая строки заголовка и подвала.
Для зашифрованных закрытых ключей введите парольную фразу в поле пароля/парольной фразы.
На Android для удалённого ssh или git нужно включить Перенаправлять SSH-агент у сохранённого сервера, а сервер должен разрешать перенаправление агента. Предлагаются только сохранённые пригодные ключи. Ожидающий ответ «Разрешить/Отклонить» или запрос аппаратного ключа может приостановить терминал, передачи файлов и туннели этого соединения на срок до 30 секунд; ответьте в приложении или через уведомление.
Не удалось импортировать закрытый ключ
Импорт закрытого ключа выполняется через системное средство выбора файлов. Если импорт не удался:
- Убедитесь, что выбранный файл — закрытый ключ, а не файл открытого ключа
.pub. - Откройте файл в доверенном текстовом редакторе и убедитесь, что он содержит полный блок ключа.
- Попробуйте вставить ключ вручную в поле закрытого ключа.
- Убедитесь, что тип ключа поддерживается: Ed25519, ECDSA (P-256/384/521) или RSA на Android; Ed25519 или ECDSA на iOS. DSA (
ssh-dss) не работает ни там, ни там, а RSA не поддерживается на iOS — создайте вместо него ключ Ed25519.
Аппаратный ключ не отвечает на Android
Android поддерживает учётные данные CTAP2/FIDO2 ed25519-sk и ecdsa-sk через USB или NFC. Используйте тот же физический ключ, на котором создан импортированный файл. Для USB нужны режим хоста и разрешение; NFC должен быть включён, а ключ нужно держать у телефона до окончания операции. Введите PIN по запросу и коснитесь ключа.
Серверу нужен OpenSSH 8.2 или новее с разрешённым выбранным алгоритмом sk-*. Ключи только с U2F и поиск резидентных учётных данных не поддерживаются. Пока вы ищете ключ, тайм-аут входа может истечь: приготовьте его до подключения. Для фоновых запросов откройте уведомление аппаратного ключа или вернитесь в приложение. iOS не поддерживает аутентификацию аппаратными ключами.
Ввод с клавиатуры задерживается или изменяется
Android передаёт ввод непосредственно, с отключёнными автокоррекцией и предиктивными подсказками. На iOS Диктовка и подсказки включена по умолчанию и поддерживает голосовой ввод и исправления текущей строки. Если это неожиданно меняет ввод оболочки, отключите параметр и проверьте Подсказки клавиатуры, затем откройте новую панель, чтобы изменения вступили в силу.
Используйте дополнительный ряд для ESC, TAB, CTRL, стрелок, HOME, END, PGUP и PGDN. Зависшее соединение также может задерживать ввод. Заголовок панели Android показывает нет ответа или не отправлено; текст, набранный во время переподключения, отбрасывается, а не воспроизводится в новой оболочке. Дождитесь соединения, проверьте приглашение и повторите только нужный ввод.
Прокрутка tmux работает не так, как ожидалось
Mobile SSH меняет поведение прокрутки в зависимости от состояния терминала. В tmux или других программах с альтернативным экраном жесты прокрутки могут отправлять команды режима копирования tmux вместо прокрутки локальной истории. Если в tmux включён режим мыши, приложение отправляет escape-последовательности колеса мыши.
Если прокрутка работает неправильно:
- Попробуйте включить или отключить режим мыши tmux на удалённом сервере.
- Используйте
PGUPиPGDNиз ряда дополнительных клавиш. - Дважды нажмите на панель для перехода в полноэкранный режим перед прокруткой плотного вывода.
- Отсоединитесь и снова подключитесь к tmux, если размер удалённого терминала выглядит устаревшим.
На Android прокрутка до конца автоматически выходит из управляемого приложением режима копирования tmux, если виден стандартный индикатор этого режима. В нестандартных или разделённых раскладках без индикатора может потребоваться ручной выход. При смене сессии проверьте выбранный сервер и сокет tmux в менеджере, а также имя сессии.
Сессия оборвалась после блокировки экрана
На Android Mobile SSH использует keepalive, службу переднего плана, wake lock, Wi-Fi lock и попытки переподключения, чтобы уменьшить число разрывов соединения. Политики экономии батареи Android всё равно могут останавливать фоновую работу.
Проверьте:
- Отключите оптимизацию батареи для Mobile SSH, если ваше устройство агрессивно останавливает фоновые приложения.
- Поддерживайте стабильность Wi-Fi или мобильных данных во время долгих сессий.
- Снова откройте Mobile SSH и нажмите Active Sessions после разблокировки.
- Проверьте, что в настройках включён параметр Keep sessions running in background, если хотите, чтобы оболочки продолжали работать после того, как вы смахнули приложение из недавних.
- Если сервер разорвал SSH-сессию, переподключитесь с главного экрана: Continue перечисляет то, что ещё живо, а Tmux sessions — то, что ждёт на сервере.
На iOS система приостанавливает фоновые приложения, поэтому обычное SSH-соединение не может оставаться открытым бесконечно после переключения приложения или блокировки экрана. Короткий льготный период покрывает быстрые переключения. Задайте для сервера Присоединяться при подключении к tmux, Herdr или Zellij либо используйте Eternal Terminal, чтобы продолжить работу после переподключения. Мультиплексер должен по-прежнему работать на сервере; Eternal Terminal не поддерживает маршрут через промежуточные SSH-узлы.
Передача файлов не может просматривать файлы телефона
Mobile SSH не запрашивает на Android никакого разрешения на доступ к хранилищу. Вместо этого локальная панель показывает одну папку, доступ к которой вы даёте через системное средство выбора папки, — если панель пуста, выберите папку кнопкой Pick folder. Выданный доступ сохраняется, так что это разовый шаг.
Если удалённые файлы загружаются, а локальные нет, с SSH-подключением всё в порядке — просто ещё не выбрана папка.
На iOS локальная панель изначально открывает документы приложения. Через Мой телефон → Выбрать локальную папку можно выбрать и запомнить другую папку в «Файлах». Если провайдер или разрешение недоступны, выберите её заново или вернитесь к папке приложения. Файлы папки приложения видны в На моём iPhone; внешние папки остаются у своего провайдера. Разрешения на папки не переносятся резервными копиями.
Не удалось загрузить или скачать файл
Проверьте:
- SSH-сессия всё ещё подключена.
- Удалённый каталог существует.
- У удалённого пользователя есть права на чтение или запись по указанному пути.
- Локальный каталог назначения доступен для записи.
- На устройстве достаточно свободного места.
- Сеть стабильна для больших передач.
Не удалось выполнить проброс порта
Проверьте:
- Локальный порт находится в диапазоне от
1до65535. - Локальный порт ещё не используется.
- Строка туннеля имеет вид
PORTилиLOCAL:REMOTEHOST:REMOTE. - Удалённый хост и удалённый порт доступны с SSH-сервера.
- SSH-сервер разрешает проброс TCP.
VPN или прокси не передаёт трафик на Android
- Запустите нужный профиль на странице VPN и подтвердите запрос Android. Запуск VPN устройства заменяет предыдущий VPN; если тот должен остаться подключённым, используйте локальный SOCKS5-прокси.
- Для SSH VPN проверьте сохранённый SSH-сервер, промежуточные узлы, подлинность сервера и разрешение передачи TCP. Проверьте выбор приложений и сайтов. SSH передаёт TCP и DNS, но не произвольный UDP.
- Для SOCKS5 настройте клиент: локальный адрес, порт, пароль и удалённый DNS. Работающий прокси не перенаправляет все приложения автоматически.
- Для WireGuard проверьте рукопожатие пира, ключи,
AllowedIPsи DNS. Для Shadowsocks сверьте шифр и пароль сервера и наличие ретрансляции UDP для DNS. - Для OpenVPN используйте поддерживаемый самодостаточный профиль, проверьте центр сертификации, подлинность сервера и учётные данные, задайте VPN DNS для полного туннеля. Исправьте ошибки аутентификации или сертификатов, затем остановите и снова запустите профиль.
SSH VPN, Shadowsocks и OpenVPN могут сохранять блокировку перехваченного трафика во время переподключения вместо перехода на прямое соединение. Остановка прекращает эту защиту. VPN не обходит ограничения доступа в интернет, наложенные на его сервер провайдером или администратором.
Резервная копия восстановила не всё
Проверьте предварительный просмотр импорта и выбранный режим Объединить или Заменить. Отсутствующие разделы в старой или частичной копии оставляют соответствующие данные без изменений. Полные копии включают поддерживаемые настройки приложения; на Android — также профили VPN и прокси. Не все платформенные данные переносимы на iOS, а старые версии приложения могут отклонять новый формат полной копии.
Доверие к хостам, разрешения операционной системы и доступ к выбранным папкам остаются на устройстве. На новом устройстве проверьте серверы и предоставьте доступ к папкам и VPN. Учётным данным аппаратного ключа по-прежнему нужен физический ключ. Импорт профилей не запускает VPN; проверьте восстановленные профили перед запуском.
Удалённый рабочий стол недоступен или не меняет размер
Откройте просмотр рабочего стола из подключённой SSH-сессии. Проверьте, что сервер разрешает локальную передачу TCP. На Linux следуйте сообщению об отсутствующих пакетах и установите необходимые программы рабочего стола/VNC. Android не может зеркалировать консоль Wayland; используйте поддерживаемый виртуальный рабочий стол.
В macOS включите общий доступ к экрану в настройках Mac. Android поддерживает вход с учётной записью Mac; в iOS нужно включить доступ по классическому паролю VNC в настройках общего доступа к экрану и использовать этот пароль вместо пароля учётной записи Mac. Просмотрщик показывает существующий экран Mac. Возможно, разрешение придётся изменить на самом Mac. Виртуальный рабочий стол меняет размер без перезапуска только при поддержке сервером; перезапуск созданного приложением рабочего стола требует подтверждения и закрывает запущенные в нём программы. Выход из просмотрщика оставляет удалённый рабочий стол работающим.
Журналы отладки
Две платформы записывают разное, поэтому выбирайте ту, что соответствует вашей проблеме.
Android — терминал и отрисовка. Включите Settings → Debugging → Show Debug and Logs buttons, затем пользуйтесь появившейся на стартовом экране кнопкой Debug. Она фиксирует события терминала, объёмы данных SSH, сенсорный ввод, поведение при изменении размера и жизненный цикл туннелей. Перед началом записи приложение предупреждает, что в неё попадает каждое нажатие клавиши, включая пароли. По остановке записи архив сохраняется в папку «Загрузки».
iOS — подключения и переподключения. Включите Settings → Diagnostics → Record debug log. Он фиксирует каждый адрес, по которому выполнялось подключение, и причину неудачи, попытки переподключения и задержки между ними, разорванные соединения, сообщения «peer stopped answering keepalives», смену сети и команды tmux с их ошибками. В настройках виден живой счётчик строк, чтобы вы могли убедиться, что запись идёт, а Export Debug Log отправляет лог текстовым файлом. Лог хранится в памяти и охватывает только текущий запуск приложения.
Проверяйте любой отладочный лог или архив перед тем, как делиться им. Они предназначены для устранения неполадок и могут содержать имена серверов, адреса, тайминги или другие сведения об окружении, а на Android — ещё и всё, что вы набирали.