ssh comando remoto usando sudo sem senha falha

1

Conectado como bryan @ localserver, estou tentando executar um backup usando o rsync em um host remoto bryan @ remoteserver.

Eu preciso da conexão rsync para elevar os privilégios no host remoto usando --rsync-path='sudo rsync' , mas estou tendo problemas, então decidi simplificar as coisas e tentar primeiro fazer o seguinte:

bryan@localserver # ssh bryan@remoteserver 'sudo /usr/bin/whoami'

Uma vez, eu soltei isso, eu deveria ser capaz de fazer o rsync funcionar.

O que eu fiz até agora:

Eu tenho o ssh configurado para que bryan @ localserver possa ssh para bryan @ remoteserver usando a chave em vez de uma senha.

bryan@localserver # ssh bryan@remoteserver
bryan@remoteserver #

Eu também configurei bryan @ remoteserver para poder executar /usr/bin/whoami como sudo, sem uma senha no arquivo sudoers no remoteserver:

bryan   ALL=(ALL) NOPASSWD: /usr/bin/whoami

Isso funciona bem:

bryan@remotehost # sudo whoami
root

Mas a partir do servidor local:

bryan@localhost # ssh bryan@remoteserver 'sudo /usr/bin/whoami'
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts

Meu arquivo completo de sudoers (menos os comentários e as linhas em branco) está abaixo:

Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults !requiretty
root    ALL=(ALL:ALL) ALL
bryan   ALL=(ALL) NOPASSWD: /usr/bin/whoami
%admin  ALL=(ALL) ALL
%sudo   ALL=(ALL:ALL) ALL

ssh -t do servidor local resolve o erro 'no tty present', mas ainda solicita a senha do bryan @ remotehost.

Alguém por favor pode explicar qual é o problema?

localserver é Ubuntu 10.04 x64, remoteserver é Ubuntu 12.04 x64.

    
por Bryan 14.09.2012 / 12:17

1 resposta

2

Você é membro do grupo sudo ou admin ? Na página sudoers man:

When multiple entries match for a user, they are applied in order. Where there are multiple matches, the last match is used (which is not necessarily the most specific match).

Você pode mover sua linha bryan ALL=(ALL) NOPASSWD: /usr/bin/whoami para a parte inferior para que seja a última correspondência. Isso deve evitar que você seja solicitado a fornecer uma senha.

    
por 14.09.2012 / 12:24