# Adicionar Chaves SSH a um Site

Source: https://support.kapsulehost.com/pt-pt/adding-ssh-keys

Para abrir uma sessão shell ou uma ligação SFTP a um site da KapsuleHost, o acesso SSH é feito exclusivamente por chave, pelo que é necessário registar uma chave pública para o site no KPanel. Este guia explica onde essa página se encontra, como adicionar uma chave que já possui, como fazer com que a KapsuleHost gere uma por si e como revogar uma chave em que já não confia.

## Onde Está a Página de Chaves SSH

Abra **Websites**, clique no site, depois abra o grupo **Definições** no menu lateral esquerdo do site e escolha **Chaves SSH**. A página tem o título **Acesso SSH** e contém duas coisas: os detalhes de ligação para este site e a lista de chaves públicas atualmente autorizadas a utilizá-los.

Não existe nenhum item SSH de nível superior na barra lateral principal. As chaves são por site, pelo que uma chave que adicione aqui autentica apenas este site. Se gerir vários sites, cada um precisa da sua própria entrada, mesmo que seja a mesma chave no seu portátil.

![A página de acesso SSH de um site no KPanel, com os detalhes de ligação e a lista de chaves públicas autorizadas](https://support.kapsulehost.com/help/screenshots/adding-ssh-keys.2a53d172.webp)

> **Note:** Adicionar ou revogar uma chave requer a permissão **sites:write**. Se estiver numa conta de equipa com um papel apenas de leitura, o botão **Adicionar chave** e o ícone de revogação ficam ocultos. Peça a um proprietário ou administrador da conta para fazer a alteração.

## Detalhes de Ligação

O cartão **Detalhes de ligação** no topo da página mostra tudo o que o seu cliente precisa:

| Campo | O que é |
|---|---|
| Host | O nome do anfitrião a que ligar |
| Porta | A porta SSH para este site |
| Nome de utilizador | O utilizador de sistema com o qual o site é executado |
| SSH | Um comando `ssh` já pronto para este site |
| SFTP | Um comando `sftp` já pronto para este site |

Cada linha tem um controlo de cópia, e as linhas de SSH e SFTP copiam o comando completo em vez de apenas o valor, para que possa colar diretamente num terminal. Utilize estas duas em vez de escrever o comando manualmente: já contêm o utilizador, o anfitrião e a porta corretos.

Se o cartão não aparecer de todo, o site ainda não terminou de aprovisionar o seu utilizador de shell. Nesse caso, a API devolve um erro simples de **O site não tem utilizador SSH**. Aguarde que o indicador de estado do site passe a **Active** e recarregue a página.

## Adicionar uma Chave que já Possui

A maioria das pessoas já tem um par de chaves na sua máquina. Adicione aqui a metade pública.

1. No seu computador, imprima a sua chave pública. No macOS e no Linux, isso é geralmente feito com `cat ~/.ssh/id_ed25519.pub`, ou `cat ~/.ssh/id_rsa.pub` para uma chave RSA mais antiga. No Windows com OpenSSH, é `type %USERPROFILE%\.ssh\id_ed25519.pub`.
2. Copie a linha única completa, que começa com `ssh-ed25519`, `ssh-rsa` ou `ecdsa-sha2-nistp256`.
3. No KPanel, clique em **Adicionar chave**.
4. Coloque algo fácil de identificar no campo **Label**, por exemplo o nome da máquina onde a chave reside.
5. Cole a chave pública no segundo campo.
6. Clique em **Adicionar chave**.

A chave aparece de imediato na lista **Authorised keys**, com a sua impressão digital (fingerprint) por baixo da etiqueta. Pode ligar-se de imediato.

A KapsuleHost também envia um email para o endereço da conta sempre que uma chave é adicionada, citando a etiqueta, a impressão digital e o site. Esse email é deliberado: o acesso SSH é de confiança elevada, pelo que, se aparecer uma chave que não adicionou, revogue-a e mude a sua palavra-passe de imediato.

> **Warning:** Cole apenas o ficheiro `.pub`. Um ficheiro de chave privada não tem a extensão `.pub` e começa com uma linha do tipo `-----BEGIN OPENSSH PRIVATE KEY-----`. Se colar isso, é a sua chave privada, e deve ser regenerada em vez de reutilizada.

### Se Ainda Não Tiver uma Chave

Gere uma localmente com `ssh-keygen -t ed25519 -C "your-label"`, aceite a localização de ficheiro predefinida e defina uma frase-passe quando solicitado. Isso produz `~/.ssh/id_ed25519` (mantenha-a privada) e `~/.ssh/id_ed25519.pub` (cole essa).

## Deixar a KapsuleHost Gerar o Par de Chaves

Se preferir não executar `ssh-keygen`, o KPanel pode criar o par por si.

1. Clique em **Adicionar chave**.
2. Preencha o campo **Label**. Deixe a caixa da chave pública vazia.
3. Clique em **Gerar par de chaves**.

A KapsuleHost cria um par Ed25519, instala a metade pública no site e mostra uma faixa verde: **Par de chaves gerado: transfira a chave privada agora**. Clique em **Transferir .pem** para guardar a chave privada. O ficheiro tem o nome da etiqueta que escolheu.

> **Important:** A chave privada é mostrada apenas uma vez. A faixa indica-o claramente: esta é a única oportunidade para a transferir. A KapsuleHost não guarda uma cópia que possa obter mais tarde. Se dispensar a faixa sem a transferir, revogue a chave e gere um novo par.

Uma chave gerada não tem frase-passe, o que é o que a torna utilizável a partir de um script sem pedir confirmação. Isso também significa que o próprio ficheiro é toda a credencial. Se quiser uma frase-passe, gere o par você mesmo com `ssh-keygen` e cole a metade pública.

Após a transferência, mova o ficheiro para um local apropriado e restrinja as suas permissões, porque o SSH recusa-se a utilizar uma chave privada legível por todos:

```sh
mv ~/Downloads/my-laptop_id_ed25519.pem ~/.ssh/kapsule-mysite.pem
chmod 600 ~/.ssh/kapsule-mysite.pem
ssh -i ~/.ssh/kapsule-mysite.pem <username>@<host> -p <port>
```

Substitua o nome de utilizador, o anfitrião e a porta pelos valores do cartão **Detalhes de ligação**.

## Ler a Lista de Chaves Autorizadas

Cada linha em **Authorised keys** mostra:

- A etiqueta que deu à chave.
- A impressão digital da chave, que é como se distinguem duas chaves quando as etiquetas são semelhantes.
- **Added**, com a data em que foi registada.
- **Última utilização**, com a data da autenticação mais recente, ou **Nunca usado** se ainda não tiver autenticado.

A coluna **Última utilização** é a mais útil durante uma limpeza. Uma chave que nunca foi usada, ou que não é usada há meses, é normalmente um portátil que já foi substituído ou um prestador de serviços que já terminou a colaboração.

## Revogar uma Chave

Clique no ícone vermelho do caixote do lixo na linha da chave. O KPanel pede-lhe para confirmar com **Revogar chave SSH?** e uma nota de que a chave deixará de autenticar neste site. Clique em **Revoke** para terminar.

A revogação produz efeito para novas ligações. Uma sessão SSH já aberta não é terminada ao revogar a chave, pelo que, se estiver a remover o acesso de alguém que ainda pode estar ligado, revogue a chave e depois altere tudo o que essa pessoa possa ter levado consigo: palavras-passe de base de dados, segredos de aplicação e quaisquer tokens guardados no site.

> **Tip:** Mantenha a lista de chaves reduzida. Uma chave por máquina, identificada com o nome da máquina, é muito mais fácil de auditar do que um conjunto de chaves chamadas "key1", "new key" e "temp".

## Resolução de Problemas

**Permission denied (publickey).** A causa mais comum é o seu cliente estar a oferecer uma chave diferente da que registou. Force a chave correta com `ssh -i /path/to/private_key ...`, ou verifique com `ssh -v` quais as chaves que estão a ser oferecidas.

**Ligação recusada ou tempo limite excedido.** Confirme que está a utilizar a porta indicada em **Detalhes de ligação** e não a porta predefinida 22. Copie o comando SSH diretamente da página em vez de o escrever manualmente.

**Permissões incorretas na chave privada.** O OpenSSH recusa uma chave privada que outros utilizadores possam ler. Execute `chmod 600` no ficheiro.

**A chave funciona para SSH mas não para SFTP.** Partilham as mesmas credenciais, pelo que isto é quase sempre um problema do cliente e não da chave. Utilize o comando SFTP copiado da página, que já contém a porta correta.

## Para Onde Ir a Seguir

- [Carregar Ficheiros Com SFTP](https://support.kapsulehost.com/pt-pt/sftp-access) aborda o lado da transferência de ficheiros das mesmas credenciais.
- [Ligar à Sua Base de Dados Através de um Túnel SSH](https://support.kapsulehost.com/pt-pt/database-ssh-tunnel) utiliza a chave que acabou de adicionar para aceder ao MySQL a partir de um cliente de ambiente de trabalho.
- [Registo de Atividade do Site](https://support.kapsulehost.com/pt-pt/site-activity-log) regista todas as chaves que adiciona, para que possa verificar mais tarde quem adicionou o quê e quando.
