−25%

no Windows com pagamento anual, até 31/10. Ver planos

EQVPS

Como criar um usuário sudo num VPS e parar de usar root

Crie um usuário sudo não root no Ubuntu ou Debian, dê a ele sua chave SSH, teste e só então desative o login de root — numa ordem que não te tranca fora.

Quase todo VPS novo começa igual: você entra como root, instala algumas coisas e um mês depois continua como root. Funciona até o dia em que um script colado apaga o diretório errado. Configurar um usuário comum com sudo leva cinco minutos, e a ordem importa mais que os comandos — erre a ordem e você se tranca fora.

Esta é a sequência segura para Ubuntu 22.04/24.04 e Debian 12.

1. Crie o usuário

Como root:

adduser deploy
usermod -aG sudo deploy

O adduser pede uma senha e alguns dados opcionais (é só apertar Enter neles). Escolha uma senha de verdade: você vai digitá-la no sudo. Numa imagem Debian mínima, rode antes apt install -y sudo se o comando não existir.

2. Dê a ele sua chave SSH

O jeito mais fácil é copiar as chaves autorizadas do root mantendo o dono certo:

rsync --archive --chown=deploy:deploy /root/.ssh /home/deploy

Se preferir fazer à mão:

mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys

Permissões erradas são o motivo clássico de o login por chave falhar em silêncio. O SSH ignora um authorized_keys que outros usuários podem alterar.

3. Teste antes de mudar qualquer coisa

Mantenha a sessão de root aberta. Num terminal novo:

ssh -p 22 deploy@203.0.113.10
sudo whoami

Use seu IP e sua porta — num plano NAT é a porta SSH pessoal do painel. Se sudo whoami imprimir root, está tudo certo. Se o login falhar, você ainda tem a janela de root para corrigir.

4. Desative o login de root

Agora feche a porta. Crie um pequeno arquivo drop-in em vez de editar a configuração principal:

cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
EOF
sshd -t && systemctl reload ssh

O sshd -t confere a sintaxe antes. Configuração quebrada mais reload é como as pessoas acabam precisando do console. PasswordAuthentication no só faz sentido quando o login por chave já funciona para o novo usuário — o que você acabou de testar.

Abra mais um terminal e confirme que root é recusado e que deploy ainda entra. Depois feche a sessão antiga de root.

5. Opcional: sudo sem senha para automação

Se um script de deploy precisa de sudo sem pedir senha, dê exatamente isso e nada além:

visudo -f /etc/sudoers.d/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp

Sinceramente, NOPASSWD: ALL é tentador, mas significa que uma chave roubada vira root. Limite aos comandos que a automação executa.

Se algo der errado

O console web do painel não depende de SSH nem do firewall. Entre por ele, corrija o arquivo em /etc/ssh/sshd_config.d/, faça o reload e pronto. Descrevemos todo o processo de recuperação em como voltar a acessar um VPS trancado.

Próximos passos

As opções de acesso de cada plano estão na documentação de acesso. Até um Nano de $3 merece um usuário não root — é a melhoria de segurança mais barata que existe.

Perguntas frequentes

Por que não continuar usando root?

Tudo o que você roda como root pode quebrar o sistema inteiro, inclusive um erro de digitação. Os bots também tentam primeiro o usuário 'root', então desativar o login de root tira do jogo o alvo mais tentado. Um usuário com nome mais sudo te dá uma pausa antes de cada comando privilegiado e um registro do que foi executado.

E se eu ficar trancado fora?

Use o console web do seu painel. Ele funciona mesmo quando o SSH está quebrado ou o firewall te bloqueia, então você consegue entrar e corrigir o sshd_config. É também por isso que você testa o novo usuário antes de fechar a sessão de root.

Vale a pena usar sudo sem senha?

Para uma conta pessoal, mantenha o pedido de senha — é a última linha de defesa se sua chave SSH vazar. Sudo sem senha faz sentido para um usuário de deploy usado por automação, limitado aos comandos de que ele realmente precisa.

O comando sudo não existe no meu servidor Debian. Por quê?

Imagens Debian mínimas nem sempre o incluem. Instale como root com 'apt install -y sudo' e depois adicione seu usuário ao grupo sudo.

Qual porta SSH eu uso?

A que aparece no seu painel. Planos com IP dedicado usam a porta 22 no seu próprio IP; planos NAT usam sua porta SSH pessoal.

Comentários

Nenhum comentário ainda. Seja o primeiro.

Deixe um comentário

Os comentários são moderados antes de aparecerem.