Como habilitar comandos sudo no SSH sem perguntar a senha?

13

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 generateOfflineSigparece

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

Jeff
fonte
Não tenho 100% de certeza da /etc/sudoerssintaxe, mas meu arquivo tem a linha # %wheel ALL=(ALL) NOPASSWD: ALL. Talvez sua linha deva ser jeff ALL=(ALL) NOPASSWD: ALL?
Snapshoe
O comando remoto inteiro não precisa estar entre aspas? Você pode estar executando o script em Sever A
TheLQ
Na verdade ... acho que snapshoe está ligado a alguma coisa. Responderei à minha própria pergunta um pouco mais tarde ... #
2111 Jeff Jeff

Respostas:

16

Parece que eu tive um "erro de digitação" no /etc/sudoersarquivo ...

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.

Jeff
fonte