Authentification
DR-Terminal prend en charge trois méthodes d'authentification : mot de passe, clé privée et clé de sécurité FIDO2 (YubiKey).
Mot de passe
La voie la plus simple. Un mot de passe saisi sur une connexion enregistrée atterrit dans le magasin sécurisé de la plateforme — jamais dans la configuration JSON. Si le champ du mot de passe est vide, l'application le demande à chaque connexion.
Repli clé publique → mot de passe : lorsque le serveur rejette une clé publique (par ex. elle n'est pas dans authorized_keys), DR-Terminal demande automatiquement le mot de passe pour le même utilisateur au lieu d'abandonner la connexion.
Clé privée
Les clés aux formats OpenSSH, PKCS#1, PKCS#8, ssh.com ou PuTTY PPK (v2/v3) sont toutes acceptées — le format est détecté automatiquement, une clé .ppk fonctionne donc sans la convertir au préalable. Vous pouvez :
- Coller la clé directement dans le formulaire de connexion.
- Utiliser le gestionnaire de clés (Paramètres → Sécurité → Clés SSH) et sélectionner une clé enregistrée. Les fichiers de clés importés ici peuvent en plus être du DER binaire brut.
Si la clé est chiffrée par une phrase secrète, DR-Terminal la demande à la première utilisation de la clé puis la garde en mémoire uniquement — comme ssh-agent, un déverrouillage par exécution de l'application ; fermer l'application verrouille à nouveau toutes les clés. Les clés chiffrées importées restent sous leur forme chiffrée d'origine dans le magasin sécurisé. Nous prenons en charge de nombreux algorithmes — RSA, ECDSA (P-256, P-384, P-521), Ed25519, Ed25519-SK, ECDSA-SK (FIDO).
Générateur de clés
Paramètres → Sécurité dispose d'un assistant Générer une clé SSH. Choisissez le type (par ex. ed25519), définissez une phrase secrète (optionnelle — elle protège la clé même à l'intérieur du magasin sécurisé), et la clé est enregistrée localement. Le commentaire de clé par défaut est ${user}@${host}@DR-Terminal — pratique pour repérer la clé sur le serveur. La clé publique peut être copiée dans le presse-papiers pour ~/.ssh/authorized_keys sur le serveur.
Les clés de la liste peuvent être renommées sur place ; si le nom choisi entre en conflit avec un nom existant, l'application ajoute automatiquement (2).
Convertisseur de clés
Paramètres → Sécurité → Clés SSH → Convertir re-sérialise une clé privée entre tous les formats courants — choisissez une source (une clé enregistrée, un fichier ou du texte collé) et un format cible, puis copiez, partagez ou enregistrez le résultat.
Formats, dans les deux sens :
| Format | Lecture | Écriture |
|---|---|---|
OpenSSH (BEGIN OPENSSH PRIVATE KEY) | ✓ | ✓ |
PKCS#8 (BEGIN PRIVATE KEY) | ✓ | ✓ |
PKCS#1 (BEGIN RSA PRIVATE KEY, RSA uniquement) | ✓ | ✓ |
| PuTTY PPK — v2 et v3 | ✓ | ✓ |
L'entrée peut être PEM (texte), PuTTY PPK ou DER binaire brut — le format est détecté automatiquement. Types de clés : RSA, Ed25519 et ECDSA (P-256/384/521).
- L'export PuTTY PPK fonctionne désormais dans les deux sens (auparavant l'application ne pouvait que lire les
.ppk). Choisissez v3 (Argon2id KDF + HMAC-SHA-256, PuTTY moderne) ou v2 (ancien PuTTY) avec le sélecteur de version. Les fichiers ainsi produits se chargent sans modification dans PuTTY/puttygen. - Phrase secrète d'export optionnelle. Laissez-la vide pour une clé non chiffrée ; définissez-la et la sortie est chiffrée avec une KDF robuste propre au format (bcrypt / PBKDF2 / Argon2id). Voir Sécurité et données → Clés exportées.
- Si la conversion échoue (mauvaise phrase secrète source, format incompatible), l'application affiche désormais la raison réelle plutôt qu'une erreur générique.
PKCS#1 ne décrit que les clés RSA, ce format cible n'est donc proposé que lorsque la source est une clé RSA.
Faire passer une connexion par mot de passe à une clé
Vous n'avez pas à éditer authorized_keys à la main. Pour une connexion enregistrée par mot de passe, DR-Terminal propose une mise à niveau guidée à deux endroits :
- Liste des connexions — l'icône de clé sur la carte d'une connexion par mot de passe lance l'assistant de migration.
- Dans une session — le menu du terminal d'une session par mot de passe connectée propose Passer à la clé SSH.
Les deux suivent le même déroulement : choisissez une clé enregistrée ou générez-en une nouvelle, DR-Terminal déploie la clé publique sur le serveur via la connexion par mot de passe existante, teste que l'authentification par clé fonctionne réellement, et alors seulement bascule la connexion enregistrée vers l'authentification par clé. Si le test échoue, la connexion reste inchangée.
Clé de sécurité (FIDO2 / YubiKey)
DR-Terminal gère les clés ed25519-sk et ecdsa-sk — et vous pouvez les générer depuis l'application. Aucun ssh-keygen externe nécessaire.
Générer une clé adossée à une YubiKey dans DR-Terminal
- Paramètres → Sécurité → Clés SSH → Générer une clé SSH.
- Activez l'interrupteur Clé de sécurité. Choisissez l'algorithme — Ed25519-SK (recommandé) ou ECDSA-SK.
- Touchez votre YubiKey lorsque vous y êtes invité. L'application demande au jeton de créer une nouvelle identité et signe la clé publique.
- La clé est stockée dans le gestionnaire de clés de DR-Terminal. Copiez la clé publique et collez-la dans
~/.ssh/authorized_keyssur le serveur cible.
Windows Hello : sous Windows, la demande de PIN FIDO2 est la boîte de dialogue native Windows Hello (PIN / empreinte / visage), pas une boîte de dialogue intégrée.
Les clés résidentes (stockées sur la YubiKey elle-même) suppriment le besoin de transporter le fichier de clé — l'intégralité du secret réside sur le jeton. Les clés générées dans DR-Terminal sont non résidentes : la référence de l'identité (credential handle) est conservée dans le gestionnaire de clés et doit être utilisée conjointement avec le jeton.
Utiliser une clé SK existante
Si vous avez déjà une clé id_ed25519_sk / id_ecdsa_sk générée ailleurs (par ex. via ssh-keygen -t ed25519-sk), importez-la via le même gestionnaire de clés — DR-Terminal traite les clés SK importées et générées de la même manière.
Au moment de la connexion
DR-Terminal demande de toucher votre clé. L'indicateur clignote — touchez-la. iOS prend en charge le NFC et l'USB-C (YubiKey 5Ci et ultérieures). Android — NFC + USB (OTG). Desktop utilise les API FIDO2 natives (Windows Hello, macOS, Linux via libfido2).