Ошибка «connection refused» при попытке скопировать файл с Android-смартфона на сервер по SCP почти всегда означает одно из двух: SSH-сервер на удалённой машине не запущен, либо порт 22 закрыт файрволом. Прежде чем менять приложение или перебирать настройки, проверьте доступность сервера — это сэкономит время.
Протокол SCP (Secure Copy Protocol) работает поверх SSH и позволяет безопасно копировать файлы между устройствами. На Android нет встроенного SCP-клиента, но задачу решают сторонние приложения: терминальные эмуляторы, файловые менеджеры с поддержкой SSH и специализированные клиенты. В этой статье разберём, какой инструмент выбрать под вашу задачу, как настроить подключение и что делать при типичных ошибках.
Чем SCP отличается от SFTP и что поддерживается на Android
Оба протокола работают поверх SSH и используют один и тот же порт, но устроены по-разному. SCP — простая команда копирования, унаследованная от классической rcp. SFTP — полноценный файловый протокол с навигацией по каталогам, возобновлением передачи и управлением правами. На практике большинство Android-приложений с пометкой «SCP/SFTP» реализуют именно SFTP, потому что он удобнее для интерактивной работы.
Для пользователя разница невелика: сервер с OpenSSH обычно поддерживает оба варианта. Если вам нужно разово скопировать файл командой — подойдёт классический scp в терминале. Если требуется просматривать удалённые папки, редактировать файлы и перетаскивать документы — выбирайте приложение с SFTP-интерфейсом.
Обзор приложений: чем пользоваться на Android
Выбор зависит от сценария: разовая команда, регулярная работа с файлами или автоматизация. Ниже — инструменты, которые давно существуют и широко используются. Перед установкой проверяйте актуальность приложения в магазине: некоторые проекты обновляются нерегулярно.
- 📟 Termux — терминальный эмулятор с пакетным менеджером. Позволяет установить настоящий
opensshи использовать классическую командуscpточно так же, как на Linux. - 📂 Solid Explorer — файловый менеджер с поддержкой SFTP-серверов. Подходит для навигации по удалённым каталогам в привычном двухпанельном интерфейсе.
- 🔄 AndFTP — клиент с поддержкой FTP, FTPS, SFTP и SCP. Один из немногих, где SCP заявлен отдельным протоколом.
- ⚙️ Termius — SSH-клиент с графическим интерфейсом и встроенной передачей файлов по SFTP. Удобен тем, кто совмещает терминальные сессии и копирование.
| Приложение | Тип | Протоколы | Кому подойдёт |
|---|---|---|---|
| Termux | Терминал | SCP, SFTP, SSH | Опытным пользователям, скрипты |
| Solid Explorer | Файловый менеджер | SFTP | Регулярная работа с файлами |
| AndFTP | Клиент передачи | FTP, SFTP, SCP | Простое копирование |
| Termius | SSH-клиент | SSH, SFTP | Администраторам серверов |
Обратите внимание: функциональность и наличие платных функций у этих приложений меняется от версии к версии. Перед покупкой подписки проверьте в описании приложения, что нужный протокол доступен в вашей редакции.
Настройка SCP через Termux
Самый гибкий способ — Termux. После установки приложения из магазина нужно поставить пакет OpenSSH. Команды вводятся в терминале приложения:
pkg update
pkg install openssh
Для копирования файла со смартфона на сервер используется стандартный синтаксис команды scp:
scp /sdcard/Documents/report.pdf user@192.168.1.10:/home/user/
Здесь user — имя учётной записи на сервере, а IP-адрес замените на адрес вашей машины. При первом подключении клиент попросит подтвердить отпечаток ключа сервера — сравните его с эталонным, если есть возможность, и введите yes. Затем потребуется пароль учётной записи, если не настроена авторизация по ключу.
Для обратного направления — с сервера на смартфон — поменяйте аргументы местами:
scp user@192.168.1.10:/home/user/backup.tar.gz /sdcard/Download/
⚠️ Внимание: доступ Termux к общему хранилищу (/sdcard) требует разрешения на работу с файлами. Выдайте его в настройках Android или выполните в Termux командуtermux-setup-storage— иначе команда завершится ошибкой доступа.
☑️ Проверка перед первым подключением
Авторизация по ключу вместо пароля
Ввод пароля при каждом копировании неудобен, а при автоматизации — невозможен. Решение — ключевая пара: приватный ключ хранится на смартфоне, публичный добавляется на сервер. В Termux ключ генерируется стандартной командой ssh-keygen, после чего публичную часть нужно скопировать в файл authorized_keys на сервере — удобнее всего утилитой ssh-copy-id, если она доступна.
В графических клиентах вроде Termius ключ импортируется через настройки подключения: либо вставкой содержимого файла, либо генерацией новой пары прямо в приложении. Точные названия пунктов меню зависят от версии — ориентируйтесь на разделы с ключами (keys) или идентификацией (identity).
Передача файлов через графические клиенты
Если командная строка не нужна, проще работать в файловом менеджере. Общий порядок настройки для приложений с SFTP-поддержкой выглядит так:
- ➕ Создайте новое подключение и выберите протокол SFTP (или SCP, если он предложен отдельно).
- 🌐 Укажите адрес сервера и порт — по умолчанию SSH использует
22, но администратор мог его изменить. - 🔑 Введите логин и пароль либо выберите файл приватного ключа.
- 💾 Сохраните подключение и откройте его — появится удалённая файловая система.
Дальше файлы копируются обычным перетаскиванием или командами «копировать/вставить» между локальной и удалённой панелями. Скорость передачи зависит от сети: в локальном Wi-Fi она обычно заметно выше, чем через мобильный интернет к внешнему серверу.
⚠️ Внимание: при подключении к серверу через мобильный интернет убедитесь, что сервер действительно доступен извне, а не только из локальной сети. Проброс портов на домашнем роутере открывает доступ к вашей сети снаружи — настраивайте его осознанно и по возможности ограничивайте доступ по IP или используйте VPN.
Почему SCP иногда «зависает» на больших файлах
У классического SCP нет индикатора прогресса в некоторых реализациях и нет докачки при обрыве. Если соединение нестабильное, передача большого файла может прерваться без возможности продолжить с места обрыва. В таких случаях используйте rsync поверх SSH (доступен в Termux) или SFTP-клиент с поддержкой возобновления загрузки.
Типичные ошибки и их диагностика
Самая частая причина неудачного подключения — недоступность SSH-сервера, а не неправильная настройка клиента на Android. Поэтому диагностику начинайте с сети, а не с приложения.
Ошибка Connection refused означает, что на указанном адресе и порту никто не слушает: проверьте, запущен ли служба SSH на сервере и не блокирует ли порт файрвол. Ошибка Connection timed out чаще указывает на сетевую недоступность — неверный адрес, закрытый порт на маршрутизаторе или отсутствие маршрута между устройствами.
Сообщение Permission denied говорит о проблеме авторизации: неверный логин, пароль или неподходящий ключ. Проверьте раскладку клавиатуры при вводе пароля и убедитесь, что публичный ключ действительно добавлен в authorized_keys нужного пользователя на сервере с корректными правами на файл.
Полезная проверка из Termux — подключиться обычным SSH с подробным выводом: ssh -v user@адрес. Флаг -v покажет, на каком этапе происходит сбой: разрешение имени, установка соединения или аутентификация.
Безопасность при работе с SCP на смартфоне
Смартфон — устройство, которое легко потерять, поэтому требования к защите здесь выше, чем у стационарного компьютера. Минимальный набор мер: экран блокировки с надёжным кодом, ключи с парольной фразой и отказ от сохранения паролей серверов в открытом виде.
Избегайте подключения к серверам через открытые публичные Wi-Fi без дополнительной защиты. Сам SSH-трафик зашифрован, но неправильная реакция на предупреждение о смене ключа сервера может привести к перехвату сессии. Если клиент сообщает, что отпечаток ключа изменился, — не подтверждайте подключение, пока не выясните причину: возможно, сервер переустанавливали, а возможно, это атака.
Частые вопросы
Можно ли использовать SCP на Android без root-прав?
Да. Все перечисленные способы — Termux, файловые менеджеры, специализированные клиенты — работают на обычном смартфоне без root. Права суперпользователя не требуются ни для установки SSH-клиента, ни для передачи файлов.
Что выбрать: SCP или SFTP?
Для разового копирования из терминала удобен SCP, для регулярной работы с файлами — SFTP: он поддерживает навигацию по каталогам и возобновление передачи. Оба работают через один SSH-порт, поэтому настройка сервера одинакова.
Почему Termux не видит файлы в памяти телефона?
Приложению нужно разрешение на доступ к хранилищу. Выдайте его в настройках Android или выполните termux-setup-storage — после этого в домашнем каталоге Termux появится папка storage со ссылками на общие разделы.
Как передавать файлы автоматически по расписанию?
В Termux можно написать скрипт с командой scp и запускать его вручную или через планировщик. Для автоматизации обязательно настройте авторизацию по ключу — интерактивный ввод пароля в скрипте невозможен. Учитывайте, что Android может выгружать фоновые процессы; надёжность такого решения зависит от настроек энергосбережения конкретного устройства.
Безопасно ли хранить пароль сервера в приложении-клиенте?
Это допустимый компромисс для некритичных серверов, если смартфон защищён экраном блокировки. Для важных систем предпочтительнее ключи с парольной фразой: даже при компрометации устройства ключ без фразы использовать нельзя.