Автентифікація
DR-Terminal підтримує три способи автентифікації: пароль, приватний ключ та апаратний ключ безпеки FIDO2 (YubiKey).
Пароль
Найпростіший варіант. Пароль, введений для збереженого з'єднання, потрапляє у безпечне сховище платформи — ніколи в конфігурацію JSON. Якщо поле пароля порожнє, застосунок запитує його щоразу під час підключення.
Резервний перехід відкритий ключ → пароль: коли сервер відхиляє відкритий ключ (наприклад, його немає в authorized_keys), DR-Terminal автоматично запитує пароль для того самого користувача замість розриву з'єднання.
Приватний ключ
Приймаються ключі у форматах OpenSSH, PKCS#1, PKCS#8, ssh.com або PuTTY PPK (v2/v3) — формат визначається автоматично, тож ключ .ppk працює без попередньої конвертації. Ви можете:
- Вставити ключ безпосередньо у форму з'єднання.
- Скористатися менеджером ключів (Settings → Security → SSH keys) і вибрати збережений ключ. Крім того, тут можна імпортувати файли ключів у форматі необробленого двійкового DER.
Якщо ключ зашифровано парольною фразою, DR-Terminal запитає її під час першого використання ключа, а потім триматиме її лише в пам'яті — як ssh-agent, одне розблокування на запуск застосунку; закриття застосунку знову блокує всі ключі. Імпортовані зашифровані ключі залишаються у своїй початковій зашифрованій формі в безпечному сховищі. Ми підтримуємо багато алгоритмів — RSA, ECDSA (P-256, P-384, P-521), Ed25519, Ed25519-SK, ECDSA-SK (FIDO).
Генератор ключів
У Settings → Security є майстер Generate SSH key. Виберіть тип (наприклад, ed25519), задайте парольну фразу (необов'язково — вона захищає ключ навіть усередині безпечного сховища), і ключ буде збережено локально. Типовий коментар ключа — ${user}@${host}@DR-Terminal, що зручно для впізнавання ключа на сервері. Відкритий ключ можна скопіювати в буфер обміну для ~/.ssh/authorized_keys на сервері.
Ключі у списку можна перейменувати на місці; якщо вибрана назва збігається з наявною, застосунок автоматично додає (2).
Конвертер ключів
Settings → Security → SSH keys → Convert повторно серіалізує приватний ключ між усіма поширеними форматами — виберіть джерело (збережений ключ, файл або вставлений текст) і цільовий формат, потім скопіюйте, поділіться або збережіть результат.
Формати, в обидва боки:
| Формат | Читання | Запис |
|---|---|---|
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).
- Експорт PuTTY PPK тепер працює в обидва боки (раніше застосунок міг лише читати
.ppk). Виберіть v3 (Argon2id KDF + HMAC-SHA-256, сучасний PuTTY) або v2 (старіший PuTTY) за допомогою селектора версії. Файли, створені таким чином, завантажуються в PuTTY/puttygenбез змін. - Необов'язкова парольна фраза для експорту. Залиште її порожньою для незашифрованого ключа; задайте її — і вихідні дані шифруються за допомогою надійного KDF для кожного формату (bcrypt / PBKDF2 / Argon2id). Див. Безпека та дані → Експортовані ключі.
- Якщо конвертація не вдається (неправильна парольна фраза джерела, несумісний формат), застосунок тепер показує справжню причину замість загальної помилки.
PKCS#1 описує лише ключі RSA, тому ця ціль пропонується лише тоді, коли джерело є ключем RSA.
Переключення з'єднання з пароля на ключ
Не потрібно редагувати authorized_keys вручну. Для збереженого з'єднання з паролем DR-Terminal пропонує кероване оновлення у двох місцях:
- Список з'єднань — іконка ключа на картці з'єднання з паролем запускає майстер міграції.
- Усередині сесії — меню термінала підключеної сесії з паролем містить пункт Переключити на SSH-ключ.
Обидва шляхи виконують той самий процес: виберіть збережений ключ або згенеруйте новий, DR-Terminal розгортає відкритий ключ на сервері через наявний вхід за паролем, перевіряє, що автентифікація ключем справді працює, і лише тоді переключає збережене з'єднання на автентифікацію ключем. Якщо перевірка не вдалася, з'єднання залишається без змін.
Ключ безпеки (FIDO2 / YubiKey)
DR-Terminal працює з ключами ed25519-sk та ecdsa-sk — і ви можете згенерувати їх прямо в застосунку. Зовнішній ssh-keygen не потрібен.
Згенерувати ключ на основі YubiKey у DR-Terminal
- Settings → Security → SSH keys → Generate SSH key.
- Увімкніть перемикач Security key. Виберіть алгоритм — Ed25519-SK (рекомендовано) або ECDSA-SK.
- Торкніться свого YubiKey, коли з'явиться запит. Застосунок просить токен створити нові облікові дані та підписує відкритий ключ.
- Ключ зберігається в менеджері ключів 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).