Linux - ssh без пароля из системного (root) скрипта

1487
redmoskito

Какой самый простой способ заставить системный скрипт (работающий от имени root) выполнять удаленные команды через ssh?

Я написал несколько сценариев, которые выполняют команды удаленно через ssh, и они прекрасно работают, когда я запускаю их как сам, так как я настроил ssh-agent и ключи для входа без пароля. Я хотел бы позвонить, когда мой ноутбук подключается и отключается. Я успешно запускаю произвольные сценарии при стыковке / отстыковке, но поскольку сценарии событий ACPI запускаются от имени пользователя root, попытка запустить мой сценарий ssh ​​завершается неудачно во время аутентификации.

Я попытался использовать sudo с флагами -u и -i для имитации запуска скрипта от имени моего пользователя, например:

sudo -u redmoskito -i /home/redmoskito/bin/remote_command 

который успешно находит мой закрытый ключ и пытается использовать его, но учетные данные ssh-agent все еще отсутствуют, поэтому мне все еще нужна моя фраза-пароль.

0
возможный дубликат [SSH: выполнить команду sudo] (http://superuser.com/questions/117870/ssh-execute-sudo-command) Sathya 14 лет назад 0
@Sathya Пользователь в этом посте пытается выполнить удаленную команду от имени пользователя root на сервере, тогда как я пытаюсь выполнить удаленную команду от имени пользователя root на клиенте. redmoskito 14 лет назад 0

2 ответа на вопрос

1
Tobu

Ничего плохого в части sudo. Чтобы подобрать существующего агента ssh, посмотрите эти ответы: Совместное использование одного и того же `ssh-agent` в нескольких сеансах входа в систему

0
TD1

Вы пытались использовать su вместо sudo?

su - redmoskito -c "/ home / redmoskito / bin / remote_command"

ИЛИ ЖЕ

отредактируйте ваш скрипт для использования: ssh -l redmoskito (host) (команда) (при условии, что redmoskito - это то же имя пользователя на удаленном компьютере) Затем в домашнем каталоге redmoskito на удаленном компьютере $ HOME / .ssh / authorized_keys поместите содержимое local корневой каталог компьютера $ HOME.ssh / id_rsa.pub после создания пустой парольной фразы в качестве root на локальном компьютере с помощью ssh-keygen -t rsa Убедитесь, что $ HOME или $ HOME / .ssh или любой из файлов в $ HOME / .ssh не являются группа или другой доступный для записи, если ваш файл sshd_config имеет StrictModes = yes

Если ничего из этого не работает, дайте мне знать. Я продублирую проблему на моих машинах.

Это, безусловно, решило бы проблему, так как обошло проблему «ssh agent нуждается в аутентификации», но пустая парольная фраза для меня не вариант. redmoskito 14 лет назад 0

Похожие вопросы