Adoro a ideia de acessar servidores por meio de chaves, para não precisar digitar minha senha toda vez que ssh
entrar em uma caixa, até bloqueio a (não root
) senha do usuário ( passwd -l username
), para que seja impossível fazer login sem uma chave.
Mas tudo isso é interrompido se for necessário digitar a senha para os sudo
comandos. Por isso, sou tentado a configurar sem senhasudo
para alinhar as coisas com o login sem senha.
No entanto, eu continuo com a sensação de que isso pode sair pela culatra de alguma maneira inesperada, apenas parece inseguro. Existem ressalvas com essa configuração? Você recomendaria / não recomendaria fazer isso para uma conta de usuário em um servidor?
Esclarecimentos
- Eu estou falando sobre o uso de
sudo
em uma sessão interativa do usuário aqui, não para serviços ou scripts administrativos - Estou falando sobre o uso de um servidor em nuvem (portanto, não tenho acesso local físico a uma máquina e só consigo efetuar logon remotamente)
- Eu sei que
sudo
há um tempo limite durante o qual não preciso digitar novamente minha senha. Mas meu show não é realmente sobre perder tempo extra para digitar fisicamente uma senha. Minha ideia, no entanto, era não ter que lidar com uma senha, porque presumo que:- Se eu precisar memorizá-lo, é muito provável que seja muito curto para ser seguro ou reutilizado
- Se eu gerar uma senha longa e exclusiva para minha conta remota, terei que armazená-la em algum lugar (um programa local de gerenciamento de senhas ou um serviço em nuvem) e buscá-la sempre que desejar usar
sudo
. Eu esperava poder evitar isso.
Portanto, com essa pergunta, eu queria entender melhor os riscos, advertências e compensações de uma configuração possível em relação às outras.
Acompanhamento 1
Todas as respostas dizem que a sudo
falta de senha é insegura, pois permite a escalada "fácil" de privilégios se minha conta de usuário pessoal for comprometida. Eu entendi aquilo. Por outro lado, se eu usar uma senha, incorremos em todos os riscos clássicos com senhas (sequência muito curta ou comum, repetida em diferentes serviços etc.). Mas acho que se eu desabilitar a autenticação de senha /etc/ssh/sshd_config
para que você ainda precise ter uma chave para fazer login, posso usar uma senha mais simples apenas para sudo
facilitar a digitação? Essa é uma estratégia válida?
Acompanhamento 2
Se eu também tiver uma chave para fazer login como root
via ssh, se alguém obtiver acesso ao meu computador e roubar minhas chaves (ainda assim elas ainda estão protegidas pela senha do chaveiro do SO!), É possível que tenha acesso direto à root
conta , ignorando o sudo
caminho. Qual deve ser a política para acessar a root
conta?
/etc/passwd
, como nologin, não defina senha e defina sem senha no visudo. Se você fizer isso, verifique também se a configuração visudo é apenas para o que a conta do sistema absolutamente precisa, ou seja, bloqueie-a nos únicos comandos que ela deve executar.