Configuração segura do acesso SSH
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
mkdir -p ~/.ssh chmod 700 ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
2️⃣ Gerar a chave (recomendado: ed25519❗)
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "Chave SSH"
Se precisar de compatibilidade com sistemas antigos, use RSA 4096:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -C "Chave SSH"
3️⃣ Copiar a chave pública para o servidor remoto
ssh-copy-id -i ~/.ssh/id_ed25519.pub NOME_USUARIO@ENDERECO_IP
ou copiar manualmente:
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
ssh -i ~/.ssh/id_ed25519 NOME_USUARIO@ENDERECO_IP
5️⃣ Configurar ~/.ssh/config
(opcional❗)
nano ~/.ssh/config
Conteúdo sugerido:
Host vps HostName ENDERECO_IP User NOME_USUARIO IdentityFile ~/.ssh/id_ed25519
Agora basta usar:
ssh vps
6️⃣ Testar e reiniciar SSH
sudo sshd -t sudo systemctl restart ssh
1️⃣ Criar a pasta .ssh
(se não existir❗)
mkdir "$env:USERPROFILE\.ssh" -Force
2️⃣ Gerar as chaves SSH
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
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
ssh -i "$env:USERPROFILE\.ssh\id_rsa" NOME_USUARIO@ENDERECO_IP
5️⃣ Configurar uso automático da chave (opcional❗)
notepad "$env:USERPROFILE\.ssh\config"
Conteúdo sugerido:
Host vps HostName ENDERECO_IP User NOME_USUARIO IdentityFile ~/.ssh/id_rsa
Agora você pode conectar com:
ssh NOME_USUARIO@ENDERECO_IP
ou
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:
sudo nano /etc/ssh/sshd_config
Adicione ou altere:
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:
sudo sshd -t sudo systemctl restart ssh