sudo sem senha quando logado com chaves privadas SSH

16

É possível fazer o comando sudo para suportar chaves privadas SSH, para que quando o usuário logar usando uma chave privada, ele possa suar sem digitar uma senha.

Isso permitiria armazenar as senhas do sysadmin do UNIX em um armazenamento frio criptografado e nunca precisar acessá-las, supondo que os usuários usem chaves SSH privadas sempre para efetuar login no servidor.

    
por Mikko Ohtamaa 24.10.2012 / 22:54

3 respostas

4

Isso não é possível sem algumas mudanças sérias de código no sudo e no sshd. O Sudo não sabe sobre os métodos de login, e o ssh não publica em outros programas nada que indique se uma chave pública, senha ou algum outro mecanismo foi usado para o login.

Como alguém disse, você pode usar a opção NOPASSWD em sudoers - isso se aplicaria a usuários especificados sempre, não apenas quando eles usam ssh com chaves privadas.

Se você realmente quiser, pode haver truques que você pode fazer com um programa suid que verifica o log sshd e bloqueia / edita o arquivo sudoers para permitir que esse usuário faça um sudo sem senha e uma tarefa periódica para revogar essa permissão .

Tudo o que disse, acho que esta é uma má ideia. Requerer uma senha para comandos privilegiados tem alguns benefícios legais que a chave privada SSH não possui. Notavelmente, permite que você tenha timeouts para a autenticação (a senha deve ser reinserida, não é verdade para sessões ssh), permite que você tenha mínimos de senha e rotação (diferentemente das chaves ssh, que têm uma senha fora do controle do servidor). p>     

por 25.10.2012 / 00:29
1

Algumas respostas Apontam para o sudo sem uma senha de usuário separada. Você deve estar ciente de que isso diminuirá sua segurança.

Para um usuário que já se autenticou strongmente com um certificado, isso pode não ser um problema porque ele está em posse do certificado que, teoricamente, poderia fazê-lo root.

No entanto, se você pensar em vulnerabilidades que fornecerão um invasor com um shell de usuário limitado e esse usuário tiver NOPASSWD definido no arquivo sudoers, o atacante será root sem ter nenhuma credencial no Sistema.

Se o sudo requer uma senha do usuário, o atacante precisa de tempo e sorte para escalar seus privilégios para root.

    
por 23.09.2014 / 16:58
0

Nenhuma senha ou chave armazenada é necessária. Você pode obter o resultado desejado concedendo ao usuário o acesso sem senha em / etc / sudoers. Basta adicionar a seguinte linha:

user ALL=(ALL)       NOPASSWD: ALL

Certifique-se de usar o visudo para editar os sudoers. Você pode dar uma rápida olhada na página de manual do sudoers para entender o que está fazendo.

    
por 25.10.2012 / 04:00

Tags