PT
EspañolEnglishFrançaisDeutschPortuguêsItaliano
Entrar Comece grátis
EC2

Certificados SSH explicados de raiz: entrar nas suas máquinas sem distribuir chaves

O que é um certificado SSH, em que se diferencia da chave de sempre e porque é que as empresas grandes os usam: uma chave que caduca sozinha, que não há que copiar para cada máquina e que se pode limitar a um utilizador e a um IP. Com os comandos para o experimentar numa máquina da AWS.

⏱ 30 minutos ◎ Intermédio Atualizado em 30/10/2026

A forma habitual de entrar numa máquina Linux na nuvem é uma chave SSH: um ficheiro no seu computador e o seu par público copiado para a máquina. Funciona, mas repare no que implica quando há mais do que uma pessoa e mais do que uma máquina: cada chave há que copiá-la para cada máquina, cada pessoa que sai deixa a sua chave em todas elas até que alguém se lembre de a apagar, e uma chave perdida vale para sempre. Sabe hoje, com certeza, quantas chaves podem entrar no seu servidor de produção e de quem são?

Os certificados SSH resolvem exatamente isso. É a mesma tecnologia que o Simplio usa para a sua chave suplente e a mesma que o Lightsail usa para a sua consola web, e não é preciso ser perito para a entender.

Antes de começar: o que significa cada coisa

Chave SSH
Um par de ficheiros: a privada (fica no seu computador, nunca se partilha) e a pública (copia-se para a máquina, no ficheiro authorized_keys do utilizador). A máquina deixa entrar quem demonstrar ter a privada.
Certificado SSH
A sua chave pública, assinada por uma autoridade, com um nome, uma data de caducidade e uma lista de utilizadores para os quais vale. A máquina não precisa de conhecer a sua chave: basta-lhe confiar em quem a assinou.
Autoridade de certificados (CA)
Outra chave SSH, mas que só serve para assinar. A sua pública copia-se para as máquinas uma vez; a sua privada guarda-se muito bem, porque quem a tiver pode assinar certificados.
Principal
O nome de utilizador para o qual o certificado vale. Um certificado para "ubuntu" não serve para entrar como "root".
Validade
Desde quando e até quando o certificado vale. Pode ser um ano ou cinco minutos.
authorized_keys
O ficheiro, dentro da pasta .ssh de cada utilizador da máquina, com as chaves públicas que podem entrar como ele. Admite também uma linha especial que diz "aceita certificados assinados por esta autoridade".

Passo a passo

  1. Entenda a diferença com um exemplo

    Com chaves: para que a Ana entre em dez máquinas, a sua chave pública copia-se para dez ficheiros. Quando a Ana sai, há que apagá-la de dez sítios, e se um se esquece, a Ana (ou quem tiver o portátil dela) continua a entrar. Com certificados: as dez máquinas confiam numa única autoridade. À Ana assina-se um certificado que vale até sexta-feira. No sábado, a Ana não entra em nenhuma, sem tocar numa única máquina. E se se lhe assina um novo todas as manhãs, nunca há nada para revogar.

  2. Crie uma autoridade (uma vez, no seu computador)

    ssh-keygen -t ed25519 -f mi_ca -C "CA de mi empresa"

    Saem dois ficheiros. mi_ca é a privada: guarde-a num gestor de palavras-passe ou num disco cifrado, e nunca a copie para nenhuma máquina. mi_ca.pub é a que irá para as máquinas.

  3. Diga à máquina que confie na sua autoridade

    Há duas formas. A global, em /etc/ssh/sshd_config, vale para todos os utilizadores:

    TrustedUserCAKeys /etc/ssh/mi_ca.pub

    E a local, sem tocar na configuração do SSH: uma linha no authorized_keys do utilizador, que só vale para ele:

    cert-authority,principals="ubuntu" ssh-ed25519 AAAA... CA de mi empresa

    A segunda é a que convém no Lightsail, porque o Lightsail já usa TrustedUserCAKeys para a sua própria consola web e só pode haver uma. Recarregue o SSH (sudo systemctl reload ssh) e a máquina já aceita certificados seus.

  4. Assine um certificado para uma pessoa

    A pessoa envia-lhe a sua chave pública (id_ed25519.pub). Você assina-a, dizendo para que utilizador vale e quanto dura:

    ssh-keygen -s mi_ca -I "ana-portatil" -n ubuntu -V +1w id_ed25519.pub

    Sai id_ed25519-cert.pub: devolve-lho e ela põe-no junto da sua chave. -I é um nome para o registo da máquina (assim sabe quem entrou), -n o utilizador permitido e -V +1w uma semana de validade. Pode pôr +5m e terá um certificado de cinco minutos.

  5. Entre e verifique

    ssh -i id_ed25519 ubuntu@IP.DE.LA.MAQUINA

    O SSH usa o certificado sozinho. Na máquina, sudo journalctl -u ssh | grep ana-portatil mostra-lhe a entrada com o nome que pôs ao assinar. Passada a validade, o mesmo comando responde "Permission denied" sem que ninguém tenha tocado em nada.

  6. Adicione condições: só a partir de um IP

    Ao assinar pode adicionar restrições. A mais útil: que o certificado só valha a partir de um endereço concreto.

    ssh-keygen -s mi_ca -I "copias-nocturnas" -n backup -V +1d -O source-address=203.0.113.10 id_backup.pub

    Se esse certificado se perder, a partir de qualquer outro IP não serve. É o que faz a chave suplente do Simplio: certificados de cinco minutos, para um único utilizador, válidos só a partir do IP do servidor do Simplio.

O que pode correr mal

"Permission denied" apesar de o certificado estar correto

O mais comum: o principal não coincide (assinou para "ubuntu" e entra como "admin"), a validade já passou, ou a hora da máquina está errada (os certificados dependem do relógio; verifique com date e ative a sincronização de hora).

A máquina já tinha TrustedUserCAKeys

É o caso do Lightsail e de algumas imagens. Não o mude: perderia a consola web. Use a linha cert-authority no authorized_keys do utilizador, que convive sem problema.

Perdi a privada da CA

Não pode assinar mais certificados, mas os já assinados continuam a valer até à sua caducidade. Crie uma CA nova e substitua a pública nas máquinas enquanto os certificados velhos ainda entram. Por isso as validades curtas são uma vantagem: a mudança completa-se sozinha.

Roubaram-me a privada da CA

Quem a tiver pode assinar certificados para todas as suas máquinas. Substitua a pública em todas elas quanto antes; se usou source-address, o ladrão precisa além disso de estar nesse IP. É a razão para a guardar fora das máquinas e fora do e-mail.

No Simplio

O Simplio usa certificados SSH por baixo para que você não tenha de o fazer. O terminal no navegador entra com a chave temporária que a AWS entrega para cada sessão, sem que ninguém receba um ficheiro. E a chave suplente é exatamente o que este guia explica, levado ao limite: um utilizador sem palavra-passe na máquina, que só aceita certificados assinados pelo Simplio, de cinco minutos, para esse utilizador e só a partir do IP do Simplio, com o seu código do duplo fator em cada utilização. Deixa a chave com um botão e o Simplio verifica todos os dias que continua a abrir. Como funciona a chave suplente.

O mesmo, na AWS e no Simplio

Na consola da AWSNo Simplio
Dar acesso a uma pessoaCopiar a chave dela para cada máquinaConceder-lhe a máquina no Simplio: o terminal do navegador usa a chave temporária que a AWS dá
Retirar-lhoApagar a chave dela de cada máquina, sem esquecer nenhumaRetirar-lhe a máquina no Simplio
Acesso de emergênciaCriar a sua CA, distribuir a pública, assinar à mão um certificado quando for precisoChave suplente: certificado de cinco minutos, assinado pelo Simplio, só a partir do IP dele, com duplo fator
Saber quem entrouLer o registo de SSH de cada máquinaRegisto de atividade do Simplio: quem, que máquina, quando, de que IP

Experimentar grátis 15 dias Ver como funciona

Tudo isto, sem a consola da AWS

O Simplio é um painel em português para gerir as suas contas AWS: máquinas, cópias programadas, bases de dados, domínios, e-mail e o que a AWS lhe cobra, com permissões por pessoa e duplo fator. Sem instalar nada nos seus servidores.

Comece grátis 15 dias, sem cartão

Já é cliente? Acesso de clientes.