CH-J Server Managergerenciamento de servidor sobre SSH
E-mail
Todos os guias e artigos →

Utilizadores SSH e acesso root: configuração segura em Linux

Crie uma conta de administrador, instale a respetiva chave, teste sudo e só depois restrinja o início de sessão root, sem perder o acesso.

O objetivo e a ordem dos passos

Os administradores devem iniciar sessão com as suas próprias contas e chaves e usar sudo quando necessário, pois assim fica um registo de quem fez o quê e limitam-se as tentativas de adivinhar palavras-passe. A ordem é importante: primeiro ponha o novo acesso a funcionar, teste-o e restrinja root como último passo. Mantenha a consola do fornecedor disponível caso algo corra mal.

Crie a conta e instale a chave

Crie a conta, adicione a respetiva chave pública e defina permissões restritivas, porque sshd ignora ficheiros de chaves nos quais outros possam escrever. Nunca copie uma chave privada para o servidor. Nos sistemas da família Red Hat, use o grupo wheel em vez de sudo.

sudo adduser admin1
sudo usermod -aG sudo admin1
sudo install -d -m 700 -o admin1 -g admin1 /home/admin1/.ssh
sudo install -m 600 -o admin1 -g admin1 ~/admin1.pub /home/admin1/.ssh/authorized_keys

Teste a partir de uma segunda janela

Mantenha a sessão atual aberta e teste o novo início de sessão a partir de outro terminal. Pertencer a um grupo não prova, por si só, que sudo funciona, pois são as regras em sudoers que o determinam. Confirme com sudo -l.

ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 admin1@server.example
sudo -l
sudo -v

Restrinja o início de sessão root

PermitRootLogin prohibit-password permite root apenas com uma chave, enquanto no bloqueia completamente root por SSH. Coloque a alteração num ficheiro próprio em /etc/ssh/sshd_config.d. Para a maioria das opções, sshd usa o primeiro valor que encontra, pelo que um ficheiro anterior pode ter precedência. Por isso, verifique o valor efetivo com sshd -T em vez de ler os ficheiros. Teste um novo início de sessão antes de fechar a sessão antiga.

echo 'PermitRootLogin no' | sudo tee /etc/ssh/sshd_config.d/50-root.conf
sudo sshd -t
sudo systemctl reload ssh
sudo sshd -T | grep -iE '^(permitrootlogin|passwordauthentication) '

Início de sessão com palavra-passe e práticas a evitar

Desative PasswordAuthentication apenas depois de todas as contas necessárias terem uma chave testada. Evite partilhar uma conta entre várias pessoas, porque assim não pode revogar o acesso de uma pessoa sem afetar as restantes. sudo sem palavra-passe para uma conta inteira também significa que uma chave roubada, por si só, dá controlo total.

Contas no CH-J Server Manager

O módulo Users gere contas, grupos, chaves SSH e acesso SSH através de uma sessão SSH ativa. Nunca altera sudoers nem define NOPASSWD, e apresenta o estado real de sudo a partir de sudo -l. A conta root não pode ser eliminada, e permitir o início de sessão root com palavra-passe exige uma confirmação adicional, sendo Apenas chave a opção recomendada. Uma alteração ao acesso SSH é verificada com sshd -T e um novo início de sessão SSH; a configuração anterior é reposta automaticamente se a verificação falhar ou se ficar sem acesso. Sem sudo, o módulo é só de leitura.

Documentação detalhada

OpenSSH: sshd_config →

man: sudoers →

Desbloqueio biométrico e segurança →