Eu configurei o .ssh / allowed_keys e sou capaz de fazer login com o novo "usuário" usando a chave pub / private ... Também adicionei "user" à lista de sudoers ... o problema que tenho agora é quando Eu tento executar um comando sudo, algo simples como:
$ sudo cd /root
ele solicitará minha senha, que eu insiro, mas não funciona (estou usando a senha da chave privada que defini)
Além disso, desabilitei a senha do usuário usando
$ passwd -l user
o que estou perdendo?
Em algum lugar minhas observações iniciais estão sendo mal compreendidas ...
Estou tentando proteger meu sistema ... o objetivo final é usar chaves públicas / privadas para fazer logins versus autenticação simples de senha. Eu descobri como configurar tudo isso através do arquivo allowed_keys.
Além disso, evitarei logins de servidor por meio da conta raiz. Mas antes de fazer isso, preciso que o sudo trabalhe para um segundo usuário (o usuário com o qual entrarei no sistema o tempo todo).
Para este segundo usuário, quero impedir logins regulares de senhas e forçar apenas logins de pub / chave privada, se não bloquear o usuário através de "passwd -l user ... então, se não usar uma chave, ainda posso entre no servidor com uma senha regular.
Porém, mais importante , preciso que o sudo funcione com uma configuração de pub / chave privada com um usuário cuja senha seja desativada.
Edit: OK, acho que entendi (a solução):
1) Ajustei / etc / ssh / sshd_config e configurei PasswordAuthentication no
Isso evitará logins de senha ssh (certifique-se de ter uma configuração de chave pública / privada funcionando antes de fazer isso
2) Ajustei a lista de sudoers visudo
e adicionei
root ALL=(ALL) ALL
dimas ALL=(ALL) NOPASSWD: ALL
3) root é a única conta de usuário que terá uma senha, estou testando com duas contas de usuário "dimas" e "sherry" que não possuem uma senha definida (as senhas estão em branco passwd -d user
)
O acima mencionado impede essencialmente que todos façam login no sistema com senhas (uma chave pública / privada deve ser configurada).
Além disso, os usuários da lista de sudoers têm habilidades de administrador. Eles também podem su
para contas diferentes. Então, basicamente "dimas" pode sudo su sherry
, no entanto, "dimas NÃO pode fazer su sherry
. Da mesma forma, qualquer usuário que NÃO esteja na lista de sudoers NÃO pode fazer su user
ou sudo su user
.
NOTA O procedimento acima funciona, mas é considerado uma segurança insuficiente. Qualquer script capaz de acessar código como usuários "dimas" ou "sherry" poderá executar o sudo para obter acesso root. Um bug no ssh que permite que usuários remotos efetuem login, apesar das configurações, uma execução remota de código em algo como o Firefox ou qualquer outra falha que permita a execução de códigos indesejados, já que o usuário poderá executar como root. O Sudo sempre deve exigir uma senha ou você também pode fazer login como root em vez de outro usuário.