Как очистить ключи SSH от скрипта от root?

Я хочу настроить свой ноутбук, чтобы очистить все мои SSH-ключи от агента аутентификации, когда я закрываю крышку своего ноутбука.

Очистить ключи можно, выполнив ssh-add -D . Запуск скрипта при закрытии крышки можно выполнить, добавив скрипт в /etc/pm/sleep.d/ .

Однако, когда я добавляю команду su work -c "ssh-add -D" в скрипт в каталоге, я получаю сообщение об ошибке:

 Could not open a connection to your authentication agent. 

Как можно правильно запустить команду из сценария, выполняемого с правами root?

  • Ключи работают из config, но не из ssh-add
  • Как отключить ssh-agent?
  • Могу ли я установить, как долго ssh-agent хранит ключи в памяти?
  • ssh-add добавить все закрытые ключи в .ssh каталог
  • Идентифицировать открытый ключ SSH на сеансе оболочки удаленного конца (без агента или без идентификаторов в агенте)
  • Использовать git pull через команду ssh invoke
  • Каков наилучший способ совместного использования сокета аутентификации SSH с другим пользователем?
  • Может ли SSH-Agent работать с удаленным сценарием bash?
  • One Solution collect form web for “Как очистить ключи SSH от скрипта от root?”

    Вам нужно SSH_AUTH_SOCK в среде вашего скрипта. Это можно сделать, выполнив

     declare -p SSH_AUTH_SOCK >~/.ssh-env 

    как часть вашего процесса входа в систему. Затем сценарий должен передать этот файл, прежде чем он выполнит ssh-add :

     . ~/.ssh-env 
    Linux и Unix - лучшая ОС в мире.