Аутентификация

DR-Terminal поддерживает три способа аутентификации: пароль, приватный ключ и аппаратный ключ FIDO2 (YubiKey).

Пароль

Самый простой путь. Пароль, введённый для сохранённого подключения, попадает в защищённое хранилище платформы — никогда в JSON-конфигурацию. Если поле пароля пустое, приложение спрашивает его при каждом подключении.

Откат с открытого ключа на пароль: когда сервер отклоняет открытый ключ (например, его нет в authorized_keys), DR-Terminal автоматически запрашивает пароль для того же пользователя вместо разрыва соединения.

Приватный ключ

Принимаются ключи в форматах OpenSSH, PKCS#1, PKCS#8, ssh.com и PuTTY PPK (v2/v3) — формат определяется автоматически, поэтому ключ .ppk работает без предварительного преобразования. Вы можете:

Если ключ зашифрован парольной фразой, DR-Terminal запросит её при первом использовании ключа и затем хранит её только в памяти — как ssh-agent, одна разблокировка на запуск приложения; закрытие приложения снова блокирует все ключи. Импортированные зашифрованные ключи остаются в защищённом хранилище в исходном зашифрованном виде. Мы поддерживаем множество алгоритмов — RSA, ECDSA (P-256, P-384, P-521), Ed25519, Ed25519-SK, ECDSA-SK (FIDO).

Генератор ключей

В разделе Настройки → Безопасность есть мастер Сгенерировать SSH-ключ. Выберите тип (например, ed25519), задайте парольную фразу (необязательно — она защищает ключ даже внутри защищённого хранилища), и ключ будет сохранён локально. Комментарий ключа по умолчанию — ${user}@${host}@DR-Terminal, что удобно для опознания ключа на сервере. Открытый ключ можно скопировать в буфер обмена для ~/.ssh/authorized_keys на сервере.

Ключи в списке можно переименовывать на месте; если выбранное имя совпадает с существующим, приложение автоматически добавляет (2).

Конвертер ключей

Настройки → Безопасность → SSH-ключи → Конвертировать повторно сериализует приватный ключ между всеми распространёнными форматами — выберите источник (сохранённый ключ, файл или вставленный текст) и целевой формат, затем скопируйте, поделитесь или сохраните результат.

Форматы, в обе стороны:

ФорматЧтениеЗапись
OpenSSH (BEGIN OPENSSH PRIVATE KEY)
PKCS#8 (BEGIN PRIVATE KEY)
PKCS#1 (BEGIN RSA PRIVATE KEY, только RSA)
PuTTY PPK — v2 и v3

Входными данными могут быть PEM (текст), PuTTY PPK или необработанный двоичный DER — формат определяется автоматически. Типы ключей: RSA, Ed25519 и ECDSA (P-256/384/521).

PKCS#1 описывает только ключи RSA, поэтому этот целевой формат предлагается только когда источником является ключ RSA.

Перевод парольного подключения на ключ

Редактировать authorized_keys вручную не обязательно. Для сохранённого подключения с паролем DR-Terminal предлагает пошаговый переход в двух местах:

Оба запускают один и тот же процесс: выберите сохранённый ключ или сгенерируйте новый, DR-Terminal развернёт открытый ключ на сервере через существующий парольный вход, проверит, что аутентификация по ключу действительно работает, и только затем переключит сохранённое подключение на ключ. Если проверка не пройдёт, подключение останется без изменений.

Аппаратный ключ (FIDO2 / YubiKey)

DR-Terminal работает с ключами ed25519-sk и ecdsa-sk — и вы можете сгенерировать их прямо в приложении. Внешний ssh-keygen не требуется.

Генерация ключа на основе YubiKey в DR-Terminal

  1. Настройки → Безопасность → SSH-ключи → Сгенерировать SSH-ключ.
  2. Включите переключатель Аппаратный ключ. Выберите алгоритм — Ed25519-SK (рекомендуется) или ECDSA-SK.
  3. Коснитесь YubiKey, когда появится запрос. Приложение просит токен создать новые учётные данные и подписывает открытый ключ.
  4. Ключ сохраняется в менеджере ключей DR-Terminal. Скопируйте открытый ключ и вставьте его в ~/.ssh/authorized_keys на целевом сервере.

Windows Hello: на Windows запрос PIN для FIDO2 — это нативный диалог Windows Hello (PIN / отпечаток пальца / лицо), а не диалог внутри приложения.

Резидентные ключи (хранящиеся на самом YubiKey) избавляют от необходимости носить файл ключа — весь секрет находится на токене. Ключи, сгенерированные в DR-Terminal, нерезидентные: дескриптор учётных данных хранится в менеджере ключей и нужен вместе с токеном.

Использование существующего SK-ключа

Если у вас уже есть id_ed25519_sk / id_ecdsa_sk, сгенерированный в другом месте (например, через ssh-keygen -t ed25519-sk), импортируйте его через тот же менеджер ключей — DR-Terminal обрабатывает импортированные и сгенерированные SK-ключи одинаково.

Во время подключения

DR-Terminal запрашивает касание вашего ключа. Индикатор мигает — коснитесь его. iOS поддерживает NFC и USB-C (YubiKey 5Ci и новее). Android — NFC + USB (OTG). Desktop использует нативные API FIDO2 (Windows Hello, macOS, Linux через libfido2).

Previous
SSH-подключения
Next
Терминал