Eu tenho o servidor A e o servidor B (ambos Ubuntu 10.04 LTS) executando tarefas diferentes. O servidor A precisa puxar o servidor B, que gera um arquivo e o envia de volta ao servidor A quando terminar. Isso tudo é interno e não estou muito preocupado com questões de segurança. A troca de chaves SSH já é realizada entre os servidores A e B e funciona bem.
No servidor B, o script generateOfflineSig
parece
#!/bin/bash
echo "in script"
sudo apt-offline set offline_package.sig --install-packages "$0"
echo "after sudo"
scp offline_package.sig jeff@servera:/tmp
Também no servidor B, o visudo tem esta entrada:
jeff ALL=NOPASSWD: ALL
O que funciona se eu executar sudo ls
no servidor B ... nenhuma senha solicitada.
Infelizmente, o SSH sempre solicita uma senha no servidor A:
jeff@servera:~$ ssh -t jeff@serverb /home/jeff/generateOfflineSig "incron"
in script
[sudo] password for jeff:
Alguma ideia? Este processo não pode ser interrompido pela entrada de senha.
/etc/sudoers
sintaxe, mas meu arquivo tem a linha# %wheel ALL=(ALL) NOPASSWD: ALL
. Talvez sua linha deva serjeff ALL=(ALL) NOPASSWD: ALL
?Respostas:
Parece que eu tive um "erro de digitação" no
/etc/sudoers
arquivo ...jeff ALL=NOPASSWD: ALL
precisava estar no final do arquivo. A Ajuda do Ubuntu apenas diz Adicionar (...) ao FIM do arquivo (se não no final, pode ser anulado por entradas posteriores)
Depois disso, a senha nunca é solicitada pelos comandos "jeff's sudo", localmente ou através do SSH.
fonte