Як увімкнути команди sudo через SSH, не запитуючи пароль?


13

У мене є сервер A і сервер B (обидва Ubuntu 10.04 LTS), які виконують різні завдання. Сервер A повинен натиснути на сервер B, який генерує файл і поверне його назад на сервер A, коли закінчиться. Це все вдома, і я не надто переймаюся питаннями безпеки. Обмін ключами SSH вже виконується між серверами A і B і працює чудово.

На сервері B generateOfflineSigвиглядає сценарій

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

Також на сервері B у візуа є цей запис:

jeff ALL=NOPASSWD: ALL

Що працює, якщо я виконую sudo lsна сервері B ... пароль не задається.

На жаль, SSH завжди запитує пароль на сервері A:

jeff@servera:~$ ssh -t jeff@serverb /home/jeff/generateOfflineSig "incron"
in script
[sudo] password for jeff:

Будь-які ідеї? Цей процес неможливо перервати введенням пароля.


Не на 100% впевнений у /etc/sudoersсинтаксисі, але мій файл має рядок # %wheel ALL=(ALL) NOPASSWD: ALL. Можливо, ваша лінія повинна бути jeff ALL=(ALL) NOPASSWD: ALL?
знімок

Чи не повинна вся віддалена команда бути в лапках? Ви можете виконати сценарій у Sever A
TheLQ

Насправді ... Я думаю, що snapshoe на чомусь. Я відповім на власне запитання трохи пізніше ...
Джефф

Відповіді:


16

Схоже, у мене був "друк" у /etc/sudoersфайлі ...

jeff ALL=NOPASSWD: ALL

потрібно було в самому кінці файлу. Довідка Ubuntu говорить лише Додати (...) до кінця файлу (якщо не в кінці, це може бути анульовано пізнішими записами)

Після цього пароль ніколи не запитують "sudo команди suff, або локально, або через SSH.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.