Предупреждение : простой FTP в любом случае устарел и небезопасен. FTP-сервер Termux поддерживает только анонимный вход в систему, никакой аутентификации нет, и каждый в вашей сети может получить доступ к файлам на вашем устройстве. Вместо этого используйте SFTP (OpenSSH)!
FTP-сервер Termux основан на busybox, а сервис управляется [Termux-services]. Если вы решили использовать FTP-сервер, установите эти пакеты:
pkg install busybox termux-services
После установки вам необходимо перезапустить сеанс или получить этот файл:
source $PREFIX/etc/profile.d/start-services.sh
Теперь вы готовы включить и запустить службу демона FTP:
sv-enable ftpd
sv up ftpd
SSH обеспечивает безопасный доступ к удаленным хостам и заменяет такие инструменты, как telnet, rlogin, rsh, ftp. Termux предоставляет SSH через два пакета: dropbear и openssh . Если вы никогда раньше не использовали эти инструменты, рекомендуется установить «openssh», так как он более распространен.
Вы можете получить SSH-клиент, установив openssh или dropbear.
Пример
Чтобы войти на удаленную машину, на которой работает демон ssh на стандартном порту (22):
ssh user@hostname_or_ip
То же, что и выше, но если демон ssh работает на другом порту, например 8022:
ssh -p 8022 user@hostname_or_ip
Использование аутентификации с открытым ключом с помощью ssh, работающего на стандартном порту, и закрытого ключа, хранящегося в файле `id_rsa`:
ssh -i id_rsa user@hostname_or_ip
Использование SSH-сервера OpenSSH
OpenSSH (также известный как OpenBSD Secure Shell) — это набор безопасных сетевых утилит, основанных на протоколе Secure Shell (SSH), который обеспечивает безопасный канал по незащищенной сети в архитектуре клиент-сервер.
Порт SSH по умолчанию в Termux — 8022.
Чтобы запустить сервер OpenSSH, вам необходимо выполнить эту команду:
sshd
Если вам нужно остановить `sshd`, просто завершите его процесс:
pkill sshd
Настройка аутентификации по паролю
Аутентификация по паролю включена по умолчанию. Это позволит вам начать работу с ним намного проще. Прежде чем продолжить, убедитесь, что вы понимаете, что аутентификация по паролю менее безопасна, чем аутентификация на основе открытого ключа.
1. Убедитесь, что все обновлено и установлен пакет openssh:
pkg upgrade pkg install openssh
2. Аутентификация по паролю включена по умолчанию в файле конфигурации. Но вы все равно можете просмотреть его ($PREFIX/etc/ssh/sshd_config), он должен быть таким:
PrintMotd yes PasswordAuthentication yes Subsystem sftp /data/data/com.termux/files/usr/libexec/sftp-server
3. Установите новый пароль. Выполнить команду passwd. Хотя программа допускает минимальную длину пароля 1 символ, рекомендуемая длина пароля составляет более 8-10 символов. Пароли не выводятся на консоль.
$ passwd New password: Retype new password: New password was successfully set.
Настройка аутентификации с открытым ключом
1. Если у вас нет ключей, вы можете их сгенерировать. В этом примере мы сгенерируем ключ RSA. На ПК выполните эту команду:
ssh-keygen -t rsa -b 2048 -f id_rsa
2. Скопируйте ключ на удаленную машину (Termux). Для установки pubkey на удаленном компьютере необходимо включить аутентификацию по паролю. Теперь сделайте:
ssh-copy-id -p 8022 -i id_rsa IP_ADDRESS
Не забудьте заменить «IP_ADDRESS» фактическим IP-адресом вашего устройства в локальной сети. Это можно определить с помощью команды ifconfig.
Если все в порядке, вы увидите сообщение, подобное этому:
Number of key(s) added: 1 Now try logging into the machine, with: "ssh -p '8022' '192.168.1.4'" and check to make sure that only the key(s) you wanted were added.
3. С этого момента аутентификация по паролю может быть отключена. Отредактируйте файл $PREFIX/etc/ssh/sshd_config и замените строку, начинающуюся с «PasswordAuthentication», на
PasswordAuthentication no
Пакет OpenSSH предоставляет инструмент для доступа к удаленным хостам через SFTP. Это позволит вам работать с файлами так же, как и через FTP, но с большей безопасностью.
Подключение к Termux (sshd прослушивает порт 8022):
$sftp-P 8022 192.168.1.20
Подключение к другому месту (прослушивание sshd на стандартном порту):
sftp sftp.example.com
Однако, чтобы использовать SFTP-клиент командной строки, вы должны знать некоторые основные команды:
cd PATH - изменить текущий каталог на `ПУТЬ`.
get REMOTE [LOCAL] - скачать файл `REMOTE` и переименовать его в `LOCAL` (необязательно).
mkdir PATH — создать каталог `PATH`.
ls [PATH] - список файлов в каталоге `PATH`. Если нет аргумента, будут перечислены файлы в текущем каталоге.
put LOCAL [REMOTE] - Загрузите файл `LOCAL` и переименуйте его в `REMOTE` (необязательно).
rm FILE - Удалить файл `FILE`.