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
Chaves nos formatos OpenSSH, PKCS#1, PKCS#8, ssh.com ou PuTTY PPK (v2/v3) são todas aceitas — o formato é detectado automaticamente, então uma chave .ppk funciona sem precisar convertê-la antes. 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. Arquivos de chave importados aqui podem, adicionalmente, ser DER binário bruto.
Se a chave estiver criptografada com uma passphrase, o DR-Terminal a solicita na primeira vez em que a chave é usada e depois a mantém apenas na memória — como o ssh-agent, um desbloqueio por execução do aplicativo; fechar o aplicativo tranca todas as chaves novamente. Chaves criptografadas importadas permanecem em sua forma criptografada original no armazenamento seguro. 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.
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.
Mudar uma conexão com senha para chave
Você não precisa editar o authorized_keys à mão. Para uma conexão salva com senha, o DR-Terminal oferece um upgrade guiado em dois lugares:
- Lista de conexões — o ícone de chave no cartão de uma conexão com senha inicia o assistente de migração.
- Dentro de uma sessão — o menu do terminal de uma sessão com senha conectada tem Mudar para chave SSH.
Ambos executam o mesmo fluxo: escolha uma chave armazenada ou gere uma nova, o DR-Terminal implanta a chave pública no servidor pelo login com senha existente, testa se a autenticação por chave realmente funciona e só então muda a conexão salva para autenticação por chave. Se o teste falhar, a conexão permanece inalterada.
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.
Windows Hello: no Windows, o prompt de PIN do FIDO2 é o diálogo nativo do Windows Hello (PIN / impressão digital / rosto), não um diálogo no aplicativo.
Chaves residentes (armazenadas no próprio YubiKey) eliminam a necessidade de carregar o arquivo de chave — o segredo inteiro reside no token. As chaves geradas no DR-Terminal são não residentes: o identificador da credencial fica no gerenciador de chaves e é necessário junto com o token.
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).