Estou escrevendo um script que é para entrar em várias máquinas remotas e executar um comando nelas. Eu configurei as chaves para que o usuário que está executando o script não precise digitar a senha de cada máquina, mas apenas digite a senha no início do script.
O problema é que o comando nas máquinas remotas requer sudo
a execução. E, ao mesmo tempo, o objetivo principal do script é livrar o usuário de ter que digitar senhas várias vezes. Existe uma maneira de evitar digitar a senha para sudo
? Alterar as permissões do comando nas máquinas remotas não é uma opção.
/etc/sudoers
e também pode ser editado executandosudo /usr/sbin/visudo
%wesho ALL=NOPASSWD: /sbin/service httpd
@Wesho,
Você pode fazer o que o DaDaDom disse (funcionará e é simples) ou você pode aprimorar sua configuração usando um módulo PAM chamado pam-ssh-agent-auth .
O processo para sistemas Debian / Ubuntu é razoavelmente simples:
A edição da configuração do sudo:
Adicione o seguinte:
Continue alterando as configurações do sudo PAM:
Adicione a linha de autenticação logo acima das 2 linhas @include existentes :
Voilà!
sudo sem autenticação, mas confiando no SSH Agent para executar autenticação forte, em vez de simplesmente remover a senha da configuração do sudo.
fonte
authorized_keys
DEVE estar bloqueado para que apenas o root possa alterá-lo - caso contrário, você também pode desativar a senha.A resposta de Andre de Miranda fornece uma boa solução usando pam_ssh_agent_auth , mas as peças estão desatualizadas. Particularmente as
/etc/pam.d/sudo
instruções ao usar muitas versões atuais do Linux.Se você está executando o Ubuntu 12.04 com precisão, simplifiquei o processo fornecendo uma compilação pam_ssh_agent_auth a partir de um ppa: ppa: cpick / pam-ssh-agent-auth .
Você pode instalar o pacote executando:
Após a instalação, se você quiser usar este módulo PAM com o sudo, terá que definir as configurações e a configuração do PAM, no Ubuntu 12.04, você precisará fazer isso criando os dois arquivos a seguir:
/etc/sudoers.d/pam-ssh-agent-auth:
/etc/pam.d/sudo:
Se você estiver usando chef, o processo acima pode ser automatizado com meu livro de receitas, encontrado em um dos dois locais a seguir:
https://github.com/cpick/pam-ssh-agent-auth
http: //community.opscode .com / livros de culinária / pam-ssh-agent-auth .
O
files
diretório do livro de receitas contém os arquivos/etc/pam.d/sudo
e/etc/sudoers.d/pam-ssh-agent-auth
descritos acima que funcionam com o Ubuntu 12.04 precisos e devem ser um ponto de partida útil ao usar outras versões / distribuições.fonte