让系统脚本(以 root 身份运行)通过 ssh 执行远程命令的最简单方法是什么?
我编写了一些通过 ssh 远程执行命令的脚本,当我以自己的身份运行它们时,它们工作得很好,因为我已经设置了 ssh-agent 和密钥以实现无密码登录。我想在我的笔记本电脑对接和断开对接时调用这些脚本。我在对接/断开对接时成功运行了任意脚本,但由于 ACPI 事件脚本以 root 身份运行,因此在身份验证期间尝试运行我的 ssh 脚本会失败。
我尝试使用带有 -u 和 -i 标志的 sudo 来模拟以我的用户身份运行脚本,例如:
sudo -u redmoskito -i /home/redmoskito/bin/remote_command
它成功找到我的私钥并尝试使用它,但仍然缺少 ssh-agent 凭据,因此仍然需要我的密码。
答案1
sudo 部分没什么问题。要获取现有的 ssh 代理,请参阅以下答案:在多个登录会话之间共享同一个 ssh-agent