Como habilitar comandos sudo sobre SSH sem pedir senha?

12

Eu tenho o servidor A e o servidor B (ambos Ubuntu 10.04 LTS) fazendo tarefas diferentes. O servidor A precisa cutucar o Servidor B, que gera um arquivo e o scp volta ao servidor A quando terminar. Isso é tudo em casa 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 se parece com

#!/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, 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.

    
por Jeff 17.05.2013 / 22:27

1 resposta

14

Parece que eu tinha um "erro de digitação" no arquivo /etc/sudoers ...

jeff ALL=NOPASSWD: ALL

precisava estar no final do arquivo. A ajuda do Ubuntu diz apenas Adicionar (...) ao END do arquivo (se não no fim, pode ser anulado por entradas posteriores)

Depois disso, a senha nunca é solicitada para "comandos sudo do jeff, seja localmente ou por SSH.

    
por 21.05.2013 / 22:01