Estabelecer uma conexão segura com o servidor Ubuntu utilizando autenticação por chaves SSH, substituindo o uso de senhas.
ROTEIRO:
-
Gerar e configurar as chaves SSH
-
Criar o par de chaves (privada e pública).
-
Ajustar permissões da pasta
.ssh
. -
Copiar a chave pública para o servidor.
-
Testar a conexão e configurar o uso automático.
-
-
Restringir o acesso ao servidor
-
Editar o arquivo
/etc/ssh/sshd_config
no Ubuntu Server. -
Desativar login por senha.
-
Permitir apenas autenticação por chaves públicas.
-
Reiniciar o serviço SSH.
-
1. Gerar e configurar chaves SSH
1️⃣ Preparar a pasta .ssh
1 2 3 4 |
mkdir -p ~/.ssh chmod 700 ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys |
2️⃣ Gerar a chave (recomendado: ed25519)
1 |
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "Chave SSH" |
Se precisar de compatibilidade com sistemas antigos, use RSA 4096:
1 |
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -C "Chave SSH" |
3️⃣ Copiar a chave pública para o servidor remoto
1 |
ssh-copy-id -i ~/.ssh/id_ed25519.pub NOME_USUARIO@ENDERECO_IP |
ou copiar manualmente:
1 |
cat ~/.ssh/id_ed25519.pub | ssh NOME_USUARIO@ENDERECO_IP 'mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys' |
4️⃣ Testar a conexão
1 |
ssh -i ~/.ssh/id_ed25519 NOME_USUARIO@ENDERECO_IP |
5️⃣ Configurar ~/.ssh/config
(opcional)
1 |
nano ~/.ssh/config |
Conteúdo sugerido:
1 2 3 4 |
Host vps HostName ENDERECO_IP User NOME_USUARIO IdentityFile ~/.ssh/id_ed25519 |
Agora basta usar:
1 |
ssh vps |
6️⃣ Testar e reiniciar SSH (dicas finais)
1 2 |
sudo sshd -t sudo systemctl restart ssh |
1️⃣ Criar a pasta .ssh
(se não existir)
1 |
mkdir "$env:USERPROFILE\.ssh" -Force |
2️⃣ Gerar as chaves SSH
1 |
ssh-keygen -t rsa -b 4096 -f "$env:USERPROFILE\.ssh\id_rsa" -C "Chave SSH" |
Pressione Enter para confirmar o caminho e deixe a senha em branco (opcional).
3️⃣ Copiar a chave pública para o servidor Ubuntu
1 |
type "$env:USERPROFILE\.ssh\id_rsa.pub" | ssh NOME_USUARIO@ENDERECO_IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys" |
4️⃣ Testar a conexão
1 |
ssh -i "$env:USERPROFILE\.ssh\id_rsa" NOME_USUARIO@ENDERECO_IP |
5️⃣ Configurar uso automático da chave (opcional)
1 |
notepad "$env:USERPROFILE\.ssh\config" |
Conteúdo sugerido:
1 2 3 4 |
Host vps HostName ENDERECO_IP User NOME_USUARIO IdentityFile ~/.ssh/id_rsa |
Agora você pode conectar com:
1 |
ssh NOME_USUARIO@ENDERECO_IP |
ou
1 |
ssh vps |
2. Restringir acesso por chaves públicas
Com as chaves devidamente configuradas, agora vamos restringir o acesso ao servidor para que ocorra apenas por meio das chaves autorizadas.
1️⃣ No Ubuntu Server, edite o arquivo:
1 |
sudo nano /etc/ssh/sshd_config |
Adicione ou altere:
1 2 3 4 5 6 |
PermitRootLogin no PermitEmptyPasswords no PasswordAuthentication no ChallengeResponseAuthentication no AuthenticationMethods publickey PubkeyAuthentication yes |
-
PubkeyAuthentication yes
– Ativa autenticação por chave pública -
AuthenticationMethods publickey
– Permite apenas login por chave pública -
ChallengeResponseAuthentication no
– Desativa métodos interativos -
PasswordAuthentication no
– Desativa autenticação por senha -
PermitEmptyPasswords no
– Bloqueia contas sem senha -
PermitRootLogin no
– Desativa login direto do root
2️⃣ Reinicie o serviço SSH:
1 2 |
sudo sshd -t sudo systemctl restart ssh |
*Atualizado em 18 de outubro de 2025