Устранение неполадок

На этой странице рассматриваются распространённые проблемы Mobile SSH и первые проверки, которые стоит выполнить перед изменением настроек SSH на стороне сервера.

Не удаётся подключиться

Проверьте:

Если тот же хост работает с другого устройства, сравните точные хост, порт, имя пользователя, ключ и сетевой путь.

Подлинность сервера требует проверки

Обе платформы проверяют подлинность SSH-сервера до отправки учётных данных. На iOS новый ключ требует сверки отпечатка и действия Доверять и переподключиться. На Android параметр Настройки → Общие → Безопасность → Автоматически принимать новые SSH-идентификаторы включён по умолчанию: первый обычный ключ сохраняется автоматически, а следующие подключения должны ему соответствовать. Отключите параметр, чтобы проверять новые отпечатки до подключения.

Сверьте SHA-256 отпечаток нового или изменённого ключа с администратором по доверенному каналу. Изменение может означать замену сервера или обращение к неожиданному серверу; не удаляйте старую запись до проверки. Сохранённые идентификаторы доступны в настройках. Альтернативные адреса и промежуточные узлы не обходят проверку.

Android также поддерживает центры сертификации хостов и отзывы ключей с заданной областью действия. Неизвестные центры, просроченные или недействительные сертификаты и отозванные ключи блокируются даже при автоматическом принятии новых ключей. В iOS Настройки → Идентификаторы серверов → Импорт отозванных ключей принимает записи OpenSSH @revoked для Ed25519/ECDSA с заданной областью действия. Вставленный текст с неподдерживаемыми записями отклоняется целиком; записи CA, сертификаты, ключи RSA и хешированные имена хостов не поддерживаются. Отзывы отменяют прежнее доверие при новых и повторных подключениях, но не закрывают уже открытые соединения. Идентификаторы хостов и отзывы не входят в резервные копии. В iOS подтвердите неизвестный сервер в основном приложении перед отправкой файлов через расширение общего доступа.

Не удаётся подключиться через промежуточный сервер

Проверьте адрес и учётные данные каждого сохранённого бастиона, а также доступность первого узла с телефона. Каждый следующий узел должен быть доступен с предыдущего. Бастионы должны разрешать дальнейшую передачу TCP с учётом ограничений permitopen. Маршрут должен использовать SSH, не содержать циклов и разворачиваться максимум в восемь переходов.

Удалённый или не найденный бастион не заменяется прямым подключением. Исправьте маршрут и подключитесь заново. На Android состояние подключения и журнал входов указывают сбойный промежуточный узел отдельно от конечного сервера.

Ошибка аутентификации

Проверьте:

Для зашифрованных закрытых ключей введите парольную фразу в поле пароля/парольной фразы.

На Android для удалённого ssh или git нужно включить Перенаправлять SSH-агент у сохранённого сервера, а сервер должен разрешать перенаправление агента. Предлагаются только сохранённые пригодные ключи. Ожидающий ответ «Разрешить/Отклонить» или запрос аппаратного ключа может приостановить терминал, передачи файлов и туннели этого соединения на срок до 30 секунд; ответьте в приложении или через уведомление.

Не удалось импортировать закрытый ключ

Импорт закрытого ключа выполняется через системное средство выбора файлов. Если импорт не удался:

Аппаратный ключ не отвечает на 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-последовательности колеса мыши.

Если прокрутка работает неправильно:

На Android прокрутка до конца автоматически выходит из управляемого приложением режима копирования tmux, если виден стандартный индикатор этого режима. В нестандартных или разделённых раскладках без индикатора может потребоваться ручной выход. При смене сессии проверьте выбранный сервер и сокет tmux в менеджере, а также имя сессии.

Сессия оборвалась после блокировки экрана

На Android Mobile SSH использует keepalive, службу переднего плана, wake lock, Wi-Fi lock и попытки переподключения, чтобы уменьшить число разрывов соединения. Политики экономии батареи Android всё равно могут останавливать фоновую работу.

Проверьте:

На iOS система приостанавливает фоновые приложения, поэтому обычное SSH-соединение не может оставаться открытым бесконечно после переключения приложения или блокировки экрана. Короткий льготный период покрывает быстрые переключения. Задайте для сервера Присоединяться при подключении к tmux, Herdr или Zellij либо используйте Eternal Terminal, чтобы продолжить работу после переподключения. Мультиплексер должен по-прежнему работать на сервере; Eternal Terminal не поддерживает маршрут через промежуточные SSH-узлы.

Передача файлов не может просматривать файлы телефона

Mobile SSH не запрашивает на Android никакого разрешения на доступ к хранилищу. Вместо этого локальная панель показывает одну папку, доступ к которой вы даёте через системное средство выбора папки, — если панель пуста, выберите папку кнопкой Pick folder. Выданный доступ сохраняется, так что это разовый шаг.

Если удалённые файлы загружаются, а локальные нет, с SSH-подключением всё в порядке — просто ещё не выбрана папка.

На iOS локальная панель изначально открывает документы приложения. Через Мой телефон → Выбрать локальную папку можно выбрать и запомнить другую папку в «Файлах». Если провайдер или разрешение недоступны, выберите её заново или вернитесь к папке приложения. Файлы папки приложения видны в На моём iPhone; внешние папки остаются у своего провайдера. Разрешения на папки не переносятся резервными копиями.

Не удалось загрузить или скачать файл

Проверьте:

Не удалось выполнить проброс порта

Проверьте:

VPN или прокси не передаёт трафик на Android

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 — ещё и всё, что вы набирали.