![当用户使用 SSH 登录时运行 Python 程序](https://linux22.com/image/558159/%E5%BD%93%E7%94%A8%E6%88%B7%E4%BD%BF%E7%94%A8%20SSH%20%E7%99%BB%E5%BD%95%E6%97%B6%E8%BF%90%E8%A1%8C%20Python%20%E7%A8%8B%E5%BA%8F.png)
我想要一个用 Python 编写的命令行程序,当某个用户使用 SSH 登录我的服务器时,该程序会自动运行。但该用户必须不能退出该程序或运行任何其他命令。
该程序允许用户查看某些服务器信息并向管理员发送消息。您能想到我可以用 Ubuntu 中的 OpenSSH 服务器来做这件事吗?
谢谢,戴夫。
答案1
最安全的方法是将命令定义为用户的 shell(而不是 /bin/bash 或类似的东西)。除非代码中有 bug,否则很难规避。
第二种最安全的方法是使用部队指挥在你的 sshd 配置中或命令=在您的authorized_keys中。
做不是只需将命令放入 .bash_profile 或类似文件中,这是一个常见的错误,而且很容易规避。
请注意,即使您限制用户只能执行此单个命令,他们仍然能够通过 SSH 会话打开隧道。您可能还希望阻止不受信任的用户这样做。