Uwierzytelnianie
DR-Terminal obsługuje trzy metody uwierzytelniania: hasło, klucz prywatny oraz klucz bezpieczeństwa FIDO2 (YubiKey).
Hasło
Najprostsza droga. Hasło wpisane w zapisanym połączeniu trafia do bezpiecznego magazynu platformy — nigdy do konfiguracji JSON. Jeśli pole hasła jest puste, aplikacja pyta o nie przy każdym połączeniu.
Awaryjne przejście klucz publiczny → hasło: gdy serwer odrzuci klucz publiczny (np. nie ma go w authorized_keys), DR-Terminal automatycznie poprosi o hasło dla tego samego użytkownika, zamiast zrywać połączenie.
Klucz prywatny
Obsługiwany jest format PEM (OpenSSH). Możesz:
- Wkleić klucz bezpośrednio do formularza połączenia.
- Skorzystać z menedżera kluczy (Ustawienia → Bezpieczeństwo → Klucze SSH) i wybrać zapisany klucz.
Jeśli klucz jest zaszyfrowany hasłem (passphrase), DR-Terminal poprosi o nie przy łączeniu. Obsługujemy wiele algorytmów — RSA, ECDSA (P-256, P-384, P-521), Ed25519, Ed25519-SK, ECDSA-SK (FIDO).
Generator kluczy
W sekcji Ustawienia → Bezpieczeństwo znajduje się kreator Generuj klucz SSH. Wybierz typ (np. ed25519), ustaw hasło (passphrase — opcjonalne, chroni klucz nawet wewnątrz bezpiecznego magazynu), a klucz zostanie zapisany lokalnie. Domyślny komentarz klucza to ${user}@${host}@DR-Terminal — ułatwia rozpoznanie klucza na serwerze. Klucz publiczny można skopiować do schowka, aby umieścić go w ~/.ssh/authorized_keys na serwerze.
Klucze na liście można zmieniać nazwę w miejscu; jeśli wybrana nazwa koliduje z istniejącą, aplikacja automatycznie dopisuje (2).
Windows Hello: w systemie Windows generator kluczy wywołuje natywne okno Windows Hello (PIN / odcisk palca / twarz) zamiast okna wewnątrz aplikacji — hasło jest wtedy chronione przez TPM.
Konwerter kluczy
Ustawienia → Bezpieczeństwo → Klucze SSH → Konwertuj ponownie serializuje klucz prywatny między wszystkimi popularnymi formatami — wybierz źródło (zapisany klucz, plik lub wklejony tekst) i format docelowy, a wynik skopiuj, udostępnij lub zapisz.
Formaty, w obie strony:
| Format | Odczyt | Zapis |
|---|---|---|
| OpenSSH (BEGIN OPENSSH PRIVATE KEY) | ✓ | ✓ |
| PKCS#8 (BEGIN PRIVATE KEY) | ✓ | ✓ |
| PKCS#1 (BEGIN RSA PRIVATE KEY, tylko RSA) | ✓ | ✓ |
| PuTTY PPK — v2 i v3 | ✓ | ✓ |
Na wejściu może być PEM (tekst), PuTTY PPK lub surowy binarny DER — format jest wykrywany automatycznie. Typy kluczy: RSA, Ed25519 i ECDSA (P-256/384/521).
- Eksport do PuTTY PPK działa teraz w obie strony (wcześniej aplikacja potrafiła tylko odczytać
.ppk). Wybierz v3 (KDF Argon2id + HMAC-SHA-256, nowoczesne PuTTY) albo v2 (starsze PuTTY) selektorem wersji. Pliki utworzone w ten sposób wczytują się w PuTTY/puttygenbez zmian. - Opcjonalne hasło eksportu. Zostaw puste dla klucza niezaszyfrowanego; ustaw je, a wynik zostanie zaszyfrowany mocnym KDF dobranym do formatu (bcrypt / PBKDF2 / Argon2id). Zobacz Bezpieczeństwo i dane → Wyeksportowane klucze.
- Jeśli konwersja się nie powiedzie (złe hasło źródłowe, niezgodny format), aplikacja pokazuje teraz rzeczywistą przyczynę zamiast ogólnego błędu.
PKCS#1 opisuje wyłącznie klucze RSA, więc ten format docelowy jest dostępny tylko gdy źródłem jest klucz RSA.
Klucz bezpieczeństwa (FIDO2 / YubiKey)
DR-Terminal obsługuje klucze ed25519-sk oraz ecdsa-sk — możesz je też generować bezpośrednio w aplikacji. Zewnętrzny ssh-keygen nie jest potrzebny.
Generowanie klucza opartego na YubiKey w DR-Terminal
- Ustawienia → Bezpieczeństwo → Klucze SSH → Generuj klucz SSH.
- Włącz przełącznik Klucz bezpieczeństwa. Wybierz algorytm — Ed25519-SK (zalecany) lub ECDSA-SK.
- Dotknij YubiKey, gdy pojawi się monit. Aplikacja prosi token o utworzenie nowych poświadczeń i podpisuje klucz publiczny.
- Klucz zostaje zapisany w menedżerze kluczy DR-Terminal. Skopiuj klucz publiczny i wklej go do
~/.ssh/authorized_keysna serwerze docelowym.
Klucze rezydentne (przechowywane na samym YubiKey) eliminują konieczność noszenia pliku klucza — cały sekret żyje na tokenie. Generator oferuje to jako opcję.
Korzystanie z istniejącego klucza SK
Jeśli masz już klucz id_ed25519_sk / id_ecdsa_sk wygenerowany gdzie indziej (np. przez ssh-keygen -t ed25519-sk), zaimportuj go przez ten sam menedżer kluczy — DR-Terminal traktuje zaimportowane i wygenerowane klucze SK tak samo.
W trakcie łączenia
DR-Terminal prosi o dotknięcie klucza. Wskaźnik miga — dotknij go. iOS obsługuje NFC i USB-C (YubiKey 5Ci i nowsze). Android — NFC + USB (OTG). Komputer korzysta z natywnych API FIDO2 (Windows Hello, macOS, Linux przez libfido2).