Войдя в систему как bryan @ localserver, я пытаюсь выполнить резервное копирование с помощью rsync на удаленном хосте bryan @ remoteserver.
Мне нужно соединение rsync для повышения привилегий на удаленном хосте с помощью --rsync-path='sudo rsync'
, но у меня возникли проблемы, поэтому я решил упростить ситуацию и сначала попытаться заставить работать следующее:
bryan@localserver # ssh bryan@remoteserver 'sudo /usr/bin/whoami'
Как только я это раскрою, я смогу заставить работать rsync.
У меня настроен ssh, так что bryan @ localserver может ssh на bryan @ remoteserver, используя ключ вместо пароля.
bryan@localserver # ssh bryan@remoteserver
bryan@remoteserver #
Я также настроил bryan @ remoteserver для запуска /usr/bin/whoami
как sudo, без пароля в файле sudoers на удаленном сервере:
bryan ALL=(ALL) NOPASSWD: /usr/bin/whoami
Это отлично работает:
bryan@remotehost # sudo whoami
root
Но с локального сервера:
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
Мой полный файл sudoers (без комментариев и пустых строк) приведен ниже:
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
from localserver решает ошибку «no tty present», но по-прежнему запрашивает пароль bryan @ remotehost.
Кто-нибудь может объяснить, в чем проблема?
localserver - это Ubuntu 10.04 x64, удаленный сервер - Ubuntu 12.04 x64.
Вы член sudo
группа или admin
группа? Из sudoers
страница руководства:
Когда для пользователя совпадают несколько записей, они применяются по порядку. Если есть несколько совпадений, используется последнее совпадение (которое не обязательно является самым точным совпадением).
Вы можете переместить свой bryan ALL=(ALL) NOPASSWD: /usr/bin/whoami
линию вниз, чтобы это было последнее совпадение. Это должно уберечь вас от запроса пароля.