Что самый легкий путь состоит в том, чтобы иметь системный сценарий (работающий как корень), выполняют удаленные команды по ssh?
Я записал некоторые сценарии, которые выполняют команды удаленно через ssh, и они работают отлично, когда я выполняю их как сам, поскольку я настроил ssh-агент и ключи для входа в систему без пароля. Я хотел бы назвать их, когда мой ноутбук прикрепляет и расстыковывает. Я был успешен при запущении произвольных скриптов при прикреплении/расстыковке, но начиная со скриптов события ACPI, запущенных как корень, попытке выполнить мои ssh сбои сценария во время аутентификации.
Я пытался использовать sudo с-u и флагами-i для моделирования запущения скрипта как мой пользователь, например:
sudo -u redmoskito -i /home/redmoskito/bin/remote_command
который успешно находит мой закрытый ключ и попытки использовать его, но учетные данные ssh-агента все еще отсутствуют, таким образом, этому все еще нужен мой пароль.
Ничто неправильно с sudo частью. Для взятия существующего ssh агента см. эти ответы: Совместное использование того же 'ssh-агента' среди нескольких сессий входа в систему
Вы пытались использовать su вместо sudo?
su - redmoskito-c "/home/redmoskito/bin/remote_command"
ИЛИ
отредактируйте свой сценарий для использования: ssh-l redmoskito (хост) (команда) (предполагающий, что redmoskito является тем же именем пользователя на удаленной машине) Затем на redmoskito $HOME/.ssh/authorized_keys корневого каталога удаленной машины, вставляют содержание корневого $HOME.ssh/id_rsa.pub локальной машины после создания пустого пароля, как корень на локальной машине с ssh-keygen-t rsa Удостоверяется, $HOME или $HOME/.ssh или любой из файлов в $HOME/.ssh не являются группой или другим записываемым, если Ваш sshd_config файл имеет StrictModes=yes
Если ни одно из этого не работает, сообщить мне. Я копирую проблему на своих машинах.