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 visudoe 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 supara 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 userou 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.