Termux – мощный терминальный эмулятор для Android, позволяющий запускать полноценную Linux‑окружение. Одна из самых полезных возможностей – возможность развернуть собственный SSH‑сервер и обеспечить доступ к устройству из любой точки мира. В этой статье мы подробно разберём, как установить OpenSSH, настроить ключевую аутентификацию и добавить двухфакторную защиту с помощью Google Authenticator.
Подготовка окружения
- Установите Termux из Google Play или F-Droid.
- Обновите пакеты:
pkg update && pkg upgrade -y - Установите необходимые инструменты:
pkg install openssh openssh-sftp-server gnupg -y
Создание пользователя и генерация SSH‑ключей
Для повышения безопасности рекомендуется не использовать пользователя root. Создадим отдельного пользователя sshuser и сгенерируем пару ключей.
adduser sshuser
passwd sshuser # задаём пароль
su - sshuser
ssh-keygen -t ed25519 -C "termux@mydevice"
# При запросе пути сохранения оставьте значение по умолчанию
# При желании задайте парольную фразу
Публичный ключ будет находиться в файле ~/.ssh/id_ed25519.pub. Добавьте его в ~/.ssh/authorized_keys:
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Настройка OpenSSH
Отредактируем конфигурационный файл /data/data/com.termux/files/usr/etc/ssh/sshd_config для включения ключевой аутентификации и отключения пароля.
Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
ChallengeResponseAuthentication yes
UsePAM yes
Сохраните изменения и запустите демон SSH:
sshd
Проверьте, что сервер слушает нужный порт:
netstat -tuln | grep 2222
Установка и настройка двухфакторной аутентификации
Для 2FA воспользуемся пакетом google-authenticator, который реализует TOTP (Time‑Based One‑Time Password).
pkg install libpam-google-authenticator -y
Отредактируйте PAM‑модуль для SSH, добавив строку в файл /data/data/com.termux/files/usr/etc/pam.d/sshd:
auth required pam_google_authenticator.so nullok
Теперь каждый пользователь, включая sshuser, может создать свой секретный ключ:
google-authenticator
# Следуйте инструкциям:
# 1) Сгенерировать QR‑код – отсканируйте его приложением Google Authenticator.
# 2) Сохранить резервные коды.
# 3) Выберите «time‑based» (по умолчанию).
# 4) Ответьте «yes» на запросы о обновлении файла ~/.google_authenticator.
После этого при подключении к SSH‑серверу будет запрошен OTP‑код после ввода пароля (или сразу после ключевой аутентификации, если пароль отключён).
Автозапуск SSH‑демона при старте Termux
Для удобства можно добавить запуск сервера в ~/.bashrc или воспользоваться планировщиком termux‑boot (пакет termux-services).
pkg install termux-services -y
sv-enable sshd
sv start sshd
Тестирование подключения
С другого устройства выполните:
ssh -p 2222 -i /path/to/id_ed25519 sshuser@
После успешной аутентификации системой будет запрошен одноразовый код из Google Authenticator.
Заключение
Развёртывание собственного SSH‑сервера в Termux с двухфакторной аутентификацией позволяет превратить Android‑устройство в надёжный удалённый хост. Такая конфигурация сочетает в себе гибкость Linux‑окружения, удобство мобильного доступа и высокий уровень защиты.
Если вы хотите ускорить процесс внедрения безопасных решений, настроить CI/CD, мониторинг или получить профессиональную поддержку по мобильным DevOps‑инструментам, обратитесь к RybinskLab. Наши эксперты помогут спроектировать и реализовать индивидуальные решения под любые задачи.