Ir diretamente para o conteúdo

Definições de cookies

Escolha que tipos de cookies permite. Pode alterar a sua escolha a qualquer momento em Definições de cookies, no fundo de cada página. Política de privacidade

Necessários

Sempre ativos

Necessários para iniciar sessão, manter o seu carrinho e memorizar as suas escolhas. Estão sempre ativos.

Que cookies?
  • weboke_sessie, weboke_klant, weboke_remember: a sua sessão e manter a sessão iniciada
  • weboke_basket: o seu carrinho
  • wkBtwIncl: mostrar preços com ou sem IVA
  • wok_cookies: a sua escolha de cookies, 12 meses

Mede que anúncio leva a uma visita ou encomenda, para não pagarmos por anúncios que não dão resultado.

Que cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), até 90 dias
  • OpenAI Ads, anúncios no ChatGPT
  • wok_aff: através de que parceiro chegou até nós (programa de afiliados), 60 dias

4,6

País e idioma

Cada país tem o seu próprio site, com os preços e o IVA desse país.

Ver

Criar e utilizar chaves SSH

Módulo 2: SSH e chaves · Tempo de leitura: 10 minutos

Objetivo de aprendizagem: No final desta lição, saberá criar um par de chaves, colocar a chave pública no seu servidor, iniciar sessão sem palavra-passe e guardar a sua chave privada de forma a que um portátil perdido não se torne uma catástrofe.

Conceitos-chave: par de chaves, chave pública, chave privada, ed25519, RSA, frase-passe (passphrase), ssh-agent, ssh-copy-id, authorized_keys, permissões 700 e 600, uma chave por dispositivo, chave FIDO2

Porque é que as chaves são melhores do que as palavras-passe

Na lição 1.3 iniciou sessão com uma palavra-passe. Funciona, mas um servidor na internet recebe, desde o primeiro minuto, visitas de programas que tentam adivinhar palavras-passe. Basta consultar o registo de um servidor acabado de instalar:

root@web1:~# journalctl -u ssh --since "1 hour ago" | grep -c "Failed password"
214

Centenas de tentativas por hora é normal. Uma palavra-passe forte trava-as, mas criou um ponto fraco de que não precisa. Com uma chave SSH, adivinhar não serve de nada: não há nada para adivinhar que conste de uma lista de palavras.

Uma chave é composta por duas partes que pertencem uma à outra, um par de chaves:

  • A chave privada fica no seu próprio computador. Quem tiver este ficheiro (e conhecer a frase-passe) consegue iniciar sessão. Não a partilhe com ninguém, nem com o seu fornecedor nem com um serviço de apoio.
  • A chave pública é entregue ao servidor. Pode ser vista por qualquer pessoa: não permite iniciar sessão, apenas verificar.

Ao iniciar sessão, não é enviada qualquer palavra-passe pela ligação. O seu computador prova, com uma assinatura, que possui a chave privada, e o servidor verifica essa assinatura com a chave pública. Mesmo que alguém esteja a observar a rede, não vê nada que possa reutilizar mais tarde.

Criar uma chave

A chave é criada no seu próprio computador, não no servidor. No Windows 10 e 11, no macOS e no Linux, o ssh-keygen já vem incluído. Abra o PowerShell ou o Terminal:

anna@laptop:~$ ssh-keygen -t ed25519 -C "anna@laptop 2026"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/anna/.ssh/id_ed25519):
Enter passphrase for "/home/anna/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/anna/.ssh/id_ed25519
Your public key has been saved in /home/anna/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026

O que acontece aqui?

  • -t ed25519 escolhe o tipo. Ed25519 é curto, rápido e seguro e, desde o OpenSSH 9.5, é também o tipo predefinido quando não indica nada. Se tiver de servir um sistema antigo que não conheça o ed25519, utilize RSA com pelo menos 3072 bits: ssh-keygen -t rsa -b 4096. Tipos mais antigos, como o DSA, foram removidos do OpenSSH; não os utilize.
  • -C é apenas um comentário. Escreva algo que lhe permita ver mais tarde de que dispositivo é a chave. Isso ajuda imenso quando tiver de revogar uma chave.
  • A frase-passe cifra a chave privada no seu disco. Se o seu portátil for roubado, o ladrão fica com um ficheiro cifrado. Sem frase-passe, tem acesso imediato a todos os seus servidores.

Tem agora dois ficheiros:

FicheiroO que éPartilhar?
~/.ssh/id_ed25519Chave privadaNunca
~/.ssh/id_ed25519.pubChave pública, uma linha de textoSim, com o servidor

No Windows, encontram-se em C:\Users\anna\.ssh\. A chave pública é uma linha que começa por ssh-ed25519:

anna@laptop:~$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHk2... anna@laptop 2026

Colocar a chave pública no servidor

O servidor procura as chaves públicas no ficheiro ~/.ssh/authorized_keys do utilizador com que inicia sessão. Cada linha é uma chave. Há três formas de lá colocar a sua chave:

1. Na instalação. A maioria dos fornecedores tem, ao criar ou reinstalar um VPS, um campo para a sua chave pública. Na WebOké, esse campo chama-se "Chave SSH" no ecrã do VPS; noutros fornecedores funciona de forma semelhante. Esta é a melhor forma: assim, nunca é necessário ter o início de sessão por palavra-passe ativo.

2. Com o ssh-copy-id (macOS e Linux), enquanto o início de sessão por palavra-passe ainda funciona:

anna@laptop:~$ ssh-copy-id anna@192.0.2.10
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed
anna@192.0.2.10's password:
Number of key(s) added: 1

3. Manualmente, por exemplo a partir do Windows ou através da consola do seu fornecedor. Cole a linha do seu ficheiro .pub em authorized_keys e acerte as permissões:

anna@web1:~$ mkdir -p ~/.ssh
anna@web1:~$ nano ~/.ssh/authorized_keys
anna@web1:~$ chmod 700 ~/.ssh
anna@web1:~$ chmod 600 ~/.ssh/authorized_keys

Estas permissões não são um pormenor. O servidor SSH verifica-as (a opção StrictModes está ativa por predefinição): se outros puderem escrever na sua pasta .ssh ou na sua pasta pessoal, ele ignora as suas chaves. Nesse caso, volta simplesmente a ver um pedido de palavra-passe, sem uma mensagem de erro clara. Aprenderá a ler permissões na lição 3.1.

Em seguida, teste numa janela nova:

anna@laptop:~$ ssh anna@192.0.2.10
Enter passphrase for key '/home/anna/.ssh/id_ed25519':
anna@web1:~$

O pedido vem agora do seu próprio computador (a frase-passe da sua chave), e já não do servidor.

ssh-agent: desbloquear uma única vez

Escrever a frase-passe todas as vezes é incómodo. O ssh-agent mantém a sua chave desbloqueada em memória enquanto tiver sessão iniciada no seu computador:

anna@laptop:~$ ssh-add ~/.ssh/id_ed25519
Enter passphrase for /home/anna/.ssh/id_ed25519:
Identity added: /home/anna/.ssh/id_ed25519 (anna@laptop 2026)
anna@laptop:~$ ssh-add -l
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)

No macOS, o agente liga-se ao porta-chaves; no Windows, é o serviço "OpenSSH Authentication Agent" (ativar uma única vez em Serviços). Assim, tem a comodidade de não precisar de palavra-passe e, ainda assim, uma chave cifrada no disco.

Atenção ao agent forwarding (ssh -A): permite que o servidor em que inicia sessão utilize o seu agente. Quem for root nesse servidor pode então avançar com a sua chave. Utilize-o apenas em servidores em que confie totalmente, ou utilize ProxyJump (lição 2.3).

Uma chave por dispositivo, e saber quais estão onde

Um erro frequente: copiar uma única chave privada para o portátil, o computador de secretária e o telemóvel. Se perder um dispositivo, tem de substituir a chave em todo o lado e configurar de novo todos os dispositivos. Melhor:

  • crie em cada dispositivo uma chave própria, com um comentário claro (-C "anna@telefoon");
  • coloque todas as chaves públicas em authorized_keys, uma por linha;
  • se perder um dispositivo, remova apenas essa linha.

Verifique regularmente que chaves têm acesso:

anna@web1:~$ ssh-keygen -lf ~/.ssh/authorized_keys
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)
256 SHA256:Zt5oP1yW8eQ3rK6sV0bN9mD2xA4cH7jL1uI5fG8tE3w anna@telefoon (ED25519)

Se encontrar uma chave que não reconhece, isso é um sinal de alarme (lição 10.3). Os intrusos gostam de colocar a sua própria chave em authorized_keys para poderem voltar mais tarde.

Uma chave de hardware (FIDO2, como uma YubiKey) também é possível. Com ssh-keygen -t ed25519-sk, a parte secreta fica na própria chave e tem de lhe tocar em cada utilização. Um ficheiro roubado deixa então de ter valor. É um bom passo em frente, mas não é necessário para começar.

Perdeu a sua chave privada?

Se perder a sua única chave privada e o início de sessão por palavra-passe estiver desativado, deixa de conseguir entrar por SSH. Por isso:

  • coloque sempre pelo menos duas chaves no servidor (por exemplo, portátil e computador de secretária);
  • saiba como funciona a consola do seu fornecedor (lição 1.2). Aí inicia sessão como se tivesse um teclado ligado ao servidor, e isso funciona mesmo sem SSH. Na WebOké, chama-se Consola no ecrã do VPS; outros fornecedores chamam-lhe consola VNC, consola web ou consola de emergência.

No AlmaLinux e no Rocky Linux

Tudo nesta lição funciona da mesma forma. Uma armadilha adicional: com o SELinux ativo, ~/.ssh tem de ter a etiqueta de segurança correta. Se criou ou copiou a pasta manualmente e a sua chave é ignorada, restorecon -Rv ~/.ssh resolve isso.

Resumo

  • Um par de chaves é composto por uma chave privada (fica consigo) e uma chave pública (vai para o servidor, em ~/.ssh/authorized_keys).
  • Crie chaves com ssh-keygen -t ed25519 no seu próprio computador, com uma frase-passe; utilize o ssh-agent por comodidade.
  • As permissões contam: ~/.ssh em 700 e authorized_keys em 600, caso contrário o servidor ignora a sua chave.
  • Uma chave por dispositivo, com um comentário claro, para poder revogar apenas uma.
  • Tenha uma segunda chave e conheça a consola do seu fornecedor como acesso de emergência.

Questionário

1. Que ficheiro pode entregar ao seu fornecedor ou a um colega para obter acesso a um servidor?



2. Colocou a sua chave em authorized_keys, mas o servidor continua a pedir uma palavra-passe. Qual é uma causa frequente?



3. Porque é que coloca uma frase-passe na sua chave privada?



4. O seu portátil foi roubado. No servidor existem três chaves: portátil, computador de secretária e telemóvel, cada uma com o seu próprio comentário. O que faz?



5. Qual é o risco de ssh -A (agent forwarding) para um servidor em que não confia?



Exercício

Exercício O2.1: Criar e utilizar uma chave. Crie no seu próprio computador uma chave ed25519 com uma frase-passe e um comentário claro, coloque-a no seu servidor (através do campo do seu fornecedor, com o ssh-copy-id ou manualmente), verifique as permissões e inicie sessão com a chave numa janela nova. Em seguida, introduza a impressão digital da sua chave (obtida com ssh-keygen -lf ~/.ssh/id_ed25519.pub) e responda às perguntas sobre onde está a sua chave privada e o que faz se a perder. O programa verifica apenas se a impressão digital tem o formato correto; o resto fica a seu cargo.

Exercício O2.1: Criar e utilizar uma chave

Este exercício faz você mesmo; ninguém o verifica. Assinale o que já fez e marque o exercício como concluído.




As suas marcações e notas ficam apenas neste navegador; não as enviamos para lado nenhum. Se tiver sessão iniciada, guardamos em Os meus cursos apenas que concluiu o exercício.

Para saber mais

Os passos destes artigos aplicam-se ao ecrã do VPS e aos painéis da WebOké; noutros fornecedores funciona de forma semelhante.

Um momento…

Configurar os seus domínios

Para cada domínio, defina os servidores de nomes, a ligação ao seu alojamento e quem fica como titular.

A carregar os seus domínios…