Termux — это мощный терминальный эмулятор для Android, позволяющий запускать полноценный Linux‑окружение прямо на смартфоне. Одним из самых востребованных сценариев использования Termux является удалённое администрирование серверов через ssh. Чтобы обеспечить максимальную безопасность соединения, рекомендуется использовать SSH‑ключи вместо паролей. В этой статье мы подробно рассмотрим процесс создания, настройки и применения SSH‑ключей в Termux.
Что такое SSH‑ключи?
SSH‑ключи представляют собой пару криптографических ключей: закрытый (private) и открытый (public). Закрытый ключ хранится только на клиентском устройстве (в данном случае в Termux) и никогда не передаётся по сети. Открытый ключ копируется на удалённый сервер и добавляется в файл ~/.ssh/authorized_keys. При попытке подключения сервер проверяет, соответствует ли открытый ключ закрытому, и, если всё в порядке, предоставляет доступ без ввода пароля.
Установка Termux и подготовка окружения
Если Termux ещё не установлен, его можно загрузить из официального репозитория F-Droid или Google Play. После установки выполните обновление пакетов и установку необходимых утилит:
pkg update && pkg upgrade -y
pkg install openssh git -y
Для удобного управления SSH‑ключами также рекомендуется установить ssh-agent и keychain (опционально):
pkg install openssh-keygen keychain -y
Генерация SSH‑ключей в Termux
Для создания новой пары ключей используйте команду ssh-keygen. По умолчанию ключи сохраняются в директории ~/.ssh:
ssh-keygen -t ed25519 -a 100 -C "user@example.com"
Параметры:
-t ed25519— тип ключа (рекомендуетсяed25519за счёт лучшей безопасности и меньшего размера).-a 100— количество раундов KDF (повышает стойкость к атаке перебором).-C "user@example.com"— комментарий, помогающий идентифицировать ключ.
При запросе пути к файлу просто нажмите Enter, чтобы сохранить в ~/.ssh/id_ed25519. Затем задайте надежный пароль‑фразу (passphrase) — это дополнительный слой защиты, который требуется каждый раз при загрузке ключа в агент.
Добавление публичного ключа на удалённый сервер
Скопировать публичный ключ (id_ed25519.pub) на сервер можно несколькими способами:
- Через
ssh-copy-id(если сервер поддерживает эту утилиту):
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote-host
- Вручную, используя
catиssh:
cat ~/.ssh/id_ed25519.pub | ssh user@remote-host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Убедитесь, что у директории ~/.ssh и файла authorized_keys правильные права доступа:
ssh user@remote-host "chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
Конфигурация SSH‑клиента в Termux
Для упрощения подключения создайте файл ~/.ssh/config и добавьте в него профиль сервера:
Host myserver
HostName remote-host.example.com
User user
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
ForwardAgent yes
ServerAliveInterval 60
Параметры:
Host— псевдоним, которым будете пользоваться в командахssh.HostName— реальное доменное имя или IP‑адрес сервера.User— имя пользователя на сервере.IdentityFile— путь к закрытому ключу.ForwardAgent yes— позволяет переадресовывать агент SSH на последующие соединения (полезно при работе с git).
Работа с ssh‑agent в Termux
Чтобы не вводить пароль‑фразу каждый раз, запустите ssh-agent и загрузите в него ключ:
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_ed25519
Если вы используете keychain, процесс упрощается:
keychain -q ~/.ssh/id_ed25519
source ~/.keychain/$HOST‑sh
Эти команды удобно добавить в файл ~/.bashrc (или ~/.zshrc), чтобы агент запускался автоматически при открытии терминала.
Советы по повышению безопасности
- Ограничьте доступ к закрытому ключу. Убедитесь, что права доступа к
~/.ssh/id_ed25519установлены в600:
chmod 600 ~/.ssh/id_ed25519
- Используйте пароль‑фразу. Даже если устройство будет скомпрометировано, без фразы злоумышленник не сможет воспользоваться ключом.
- Отключите аутентификацию по паролю на сервере. В файле
/etc/ssh/sshd_configустановитеPasswordAuthentication noи перезапустите сервис. - Регулярно проверяйте список авторизованных ключей. Удаляйте устаревшие записи из
~/.ssh/authorized_keys. - Бэкап ключей. Храните зашифрованную копию закрытого ключа в надёжном облачном хранилище (например, в зашифрованном архиве).
Заключение
SSH‑ключи в Termux позволяют превратить ваш Android‑устройство в полноценный и безопасный клиент для удалённого администрирования серверов. Следуя описанным шагам — от генерации ключей до их безопасного хранения и автоматизации через ssh-agent — вы получаете надёжный механизм доступа без паролей, минимизируя риски компрометации.
Если вам требуется профессиональная настройка серверов, аудит безопасности или разработка автоматизированных решений для мобильных платформ, обратитесь к специалистам RybinskLab. Мы предоставляем услуги по инфраструктурному консалтингу, настройке CI/CD, а также обучающие программы по работе с Termux и Linux‑инструментами на Android.