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
Akceptowane są klucze w formatach OpenSSH, PKCS#1, PKCS#8, ssh.com oraz PuTTY PPK (v2/v3) — format jest wykrywany automatycznie, więc klucz .ppk działa bez wcześniejszej konwersji. Możesz:
- Wkleić klucz bezpośrednio do formularza połączenia.
- Skorzystać z menedżera kluczy (Ustawienia → Bezpieczeństwo → Klucze SSH) i wybrać zapisany klucz. Pliki kluczy importowane tutaj mogą być dodatkowo w surowym formacie binarnym DER.
Jeśli klucz jest zaszyfrowany hasłem (passphrase), DR-Terminal pyta o nie przy pierwszym użyciu klucza, a potem trzyma je wyłącznie w pamięci — jak ssh-agent, jedno odblokowanie na uruchomienie aplikacji; zamknięcie aplikacji ponownie blokuje wszystkie klucze. Zaimportowane zaszyfrowane klucze pozostają w bezpiecznym magazynie w swojej pierwotnej, zaszyfrowanej postaci. 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).
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.
Przełączenie połączenia z hasła na klucz
Nie musisz ręcznie edytować authorized_keys. Dla zapisanego połączenia z hasłem DR-Terminal oferuje prowadzoną migrację w dwóch miejscach:
- Lista połączeń — ikona klucza na karcie połączenia z hasłem uruchamia kreatora migracji.
- Wewnątrz sesji — menu terminala połączonej sesji z hasłem zawiera pozycję Przełącz na klucz SSH.
Oba miejsca uruchamiają ten sam przepływ: wybierz zapisany klucz lub wygeneruj nowy, DR-Terminal wgrywa klucz publiczny na serwer przez istniejące logowanie hasłem, testuje, czy uwierzytelnianie kluczem faktycznie działa, i dopiero wtedy przełącza zapisane połączenie na uwierzytelnianie kluczem. Jeśli test się nie powiedzie, połączenie pozostaje bez zmian.
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.
Windows Hello: w systemie Windows monit o PIN FIDO2 to natywne okno Windows Hello (PIN / odcisk palca / twarz), a nie okno wewnątrz aplikacji.
Klucze rezydentne (przechowywane na samym YubiKey) eliminują konieczność noszenia pliku klucza — cały sekret żyje na tokenie. Klucze generowane w DR-Terminal są nierezydentne: uchwyt poświadczeń jest przechowywany w menedżerze kluczy i potrzebny razem z tokenem.
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).