Autenticação
O DR-Terminal suporta três métodos de autenticação: senha, chave privada e chave de segurança FIDO2 (YubiKey).
Senha
A rota mais simples. Uma senha inserida em uma conexão salva vai parar no armazenamento seguro da plataforma — nunca na configuração JSON. Se o campo de senha estiver vazio, o aplicativo pergunta toda vez que você conecta.
Fallback de chave pública → senha: quando o servidor rejeita uma chave pública (por exemplo, ela não está em authorized_keys), o DR-Terminal automaticamente pede a senha do mesmo usuário em vez de encerrar a conexão.
Chave privada
O formato PEM (OpenSSH) é suportado. Você pode:
- Colar a chave diretamente no formulário de conexão.
- Usar o gerenciador de chaves (Configurações → Segurança → Chaves SSH) e selecionar uma chave armazenada.
Se a chave estiver criptografada com uma passphrase, o DR-Terminal a solicita no momento da conexão. Suportamos muitos algoritmos — RSA, ECDSA (P-256, P-384, P-521), Ed25519, Ed25519-SK, ECDSA-SK (FIDO).
Gerador de chaves
Configurações → Segurança tem um assistente Gerar chave SSH. Escolha o tipo (por exemplo, ed25519), defina uma passphrase (opcional — ela protege a chave mesmo dentro do armazenamento seguro), e a chave é salva localmente. O comentário padrão da chave é ${user}@${host}@DR-Terminal — útil para identificar a chave no servidor. A chave pública pode ser copiada para a área de transferência para o ~/.ssh/authorized_keys no servidor.
As chaves na lista podem ser renomeadas no local; se o nome escolhido colidir com um existente, o aplicativo acrescenta (2) automaticamente.
Windows Hello: no Windows, o gerador de chaves invoca o diálogo nativo do Windows Hello (PIN / impressão digital / rosto) em vez de um diálogo no aplicativo — a passphrase é então protegida por TPM.
Conversor de chaves
Configurações → Segurança → Chaves SSH → Converter re-serializa uma chave privada entre todos os formatos comuns — escolha uma origem (uma chave armazenada, um arquivo ou texto colado) e um formato de destino, depois copie, compartilhe ou salve o resultado.
Formatos, nos dois sentidos:
| Formato | Ler | Escrever |
|---|---|---|
| OpenSSH (BEGIN OPENSSH PRIVATE KEY) | ✓ | ✓ |
| PKCS#8 (BEGIN PRIVATE KEY) | ✓ | ✓ |
| PKCS#1 (BEGIN RSA PRIVATE KEY, apenas RSA) | ✓ | ✓ |
| PuTTY PPK — v2 e v3 | ✓ | ✓ |
A entrada pode ser PEM (texto), PuTTY PPK ou DER binário bruto — o formato é detectado automaticamente. Tipos de chave: RSA, Ed25519 e ECDSA (P-256/384/521).
- A exportação para PuTTY PPK agora funciona nos dois sentidos (antes o aplicativo só conseguia ler
.ppk). Escolha v3 (Argon2id KDF + HMAC-SHA-256, PuTTY moderno) ou v2 (PuTTY mais antigo) com o seletor de versão. Os arquivos produzidos assim carregam no PuTTY/puttygensem alterações. - Passphrase de exportação opcional. Deixe em branco para uma chave não criptografada; defina-a e a saída é criptografada com um KDF forte específico por formato (bcrypt / PBKDF2 / Argon2id). Veja Segurança e dados → Chaves exportadas.
- Se a conversão falhar (passphrase de origem incorreta, formato incompatível), o aplicativo agora mostra o motivo real em vez de um erro genérico.
O PKCS#1 descreve apenas chaves RSA, portanto esse destino é oferecido apenas quando a origem é uma chave RSA.
Chave de segurança (FIDO2 / YubiKey)
O DR-Terminal lida com chaves ed25519-sk e ecdsa-sk — e você pode gerá-las de dentro do aplicativo. Não é necessário um ssh-keygen externo.
Gerar uma chave protegida por YubiKey no DR-Terminal
- Configurações → Segurança → Chaves SSH → Gerar chave SSH.
- Ative o interruptor Chave de segurança. Escolha o algoritmo — Ed25519-SK (recomendado) ou ECDSA-SK.
- Toque seu YubiKey quando solicitado. O aplicativo pede ao token para criar uma nova credencial e assina a chave pública.
- A chave é armazenada no gerenciador de chaves do DR-Terminal. Copie a chave pública e cole-a em
~/.ssh/authorized_keysno servidor de destino.
Chaves residentes (armazenadas no próprio YubiKey) eliminam a necessidade de carregar o arquivo de chave — o segredo inteiro reside no token. O gerador oferece isso como opção.
Usando uma chave SK existente
Se você já tem uma id_ed25519_sk / id_ecdsa_sk gerada em outro lugar (por exemplo, via ssh-keygen -t ed25519-sk), importe-a pelo mesmo gerenciador de chaves — o DR-Terminal trata chaves SK importadas e geradas da mesma forma.
No momento da conexão
O DR-Terminal solicita um toque na sua chave. O indicador pisca — toque nele. O iOS suporta NFC e USB-C (YubiKey 5Ci e posteriores). Android — NFC + USB (OTG). O Desktop usa APIs FIDO2 nativas (Windows Hello, macOS, Linux via libfido2).