SSH 和用户 Nobody

SSH 和用户 Nobody

我正在尝试让我的 Raspberry Pi 在位于同一本地网络上的 Mac 上触发脚本。

Pi 上已启用 SSH。我已创建 ssh 密钥,因此 ssh 不会使用 ssh-keygen 要求输入密码或密码短语。

我可以在 Pi 的终端中输入以下内容,无需密码或密码短语即可运行。太棒了!

ssh [email protected] osascript Applescripts/myscript.scpt

它在终端中可以工作,但如果我尝试在 triggerhappy conf 文件中使用它,它就不起作用,大概是因为 triggerhappy 是用户 Nobody,不是我。明白了。我该如何修复它?我不是 unix 专家,所以任何具体细节都非常感谢!

我尝试将 ssh 密钥保存到 tmp/sshkeyfornobody 中的文件中,将权限设置为 400,将用户设置为 nobody,当然,重新加载 triggerhappy。

ssh -i /tmp/sshkeyfornobody [email protected] osascript Applescripts/myscript.scpt

但它仍然不起作用,可能是因为用户 Nobody 无权访问 tmp 文件夹?Nobody 可以访问哪些文件夹来保存 ssh 密钥?

这款 Raspberry Pi 的唯一功能是作为我的通用遥控器的控制器,使用 Flirc IR 适配器,Pi 将其视为键盘。我知道 Flirc 工作正常,因为我使用 triggerhappy 将一系列 curl 命令分配给热键,它们在我的 Pi 上运行良好(对于不熟悉它的人来说,Flirc 非常棒!)。

我对 unix、Raspbian 等还不熟悉,所以希望您能原谅我在这方面的知识匮乏。您可以随意解释,因为我正在寻找答案,但我同样对学习感兴趣。

答案1

我自己回答了这个问题。将 triggerhappy 默认用户更改为 pi 或 root。在 Pi 上,它位于:

/etc/default/triggerhappy 只需取消注释用户选项即可将其从 nobody 更改为 root,如文件中所述:

# The Triggerhappy daemon (thd) drops its root privileges after
# startup and becomes "nobody". If you want it to retain its root
# status (e.g. to run commands only accessible to the system user),
# uncomment the following line or specifiy the user option yourself:
#
# DAEMON_OPTS="--user root"

取消注释最后一行并重新启动 triggerhappy。就这么简单。这可能不适合所有人,但对我来说,它是完美的,因为我的 Pi 只有一个用途:它用作控件,使用 USB Flirc IR 接收器将我的 IoT 设备连接到通用遥控器。因此,我按下通用遥控器上的一个按钮,Flirc 告诉我的 Pi 执行按键 Control+1,然后 triggerhappy 会将其转换为命令。

相关内容