We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Использование SSH‑ключей в Termux для безопасного доступа к удалённым серверам

Подробное руководство по генерации, настройке и использованию SSH‑ключей в Termux для безопасного подключения к удалённым серверам с рекомендациями по повышению уровня защиты.

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) на сервер можно несколькими способами:

  1. Через ssh-copy-id (если сервер поддерживает эту утилиту):
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote-host
  1. Вручную, используя 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.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект