【发布时间】:2010-11-08 10:42:54
【问题描述】:
我有一个 shellscript,它通过 ssh 和一个密钥连接到另一台机器,因此它不需要用户名和密码。
当我从命令行运行这个脚本时它工作正常.. 但是当我从 php shell_exec 运行这个脚本时它不起作用。
如果我与 PHP 建立 ssh 连接并以我自己的用户身份运行脚本,它确实可以工作。
现在我的问题:D
有没有办法只在 php 中运行 shell_exec 中的脚本,而无需以其他用户身份通过 ssh 建立连接?
【问题讨论】:
-
那是对你的场景的一个相当糟糕的描述。无论如何,您确定命令行和 PHP 使用相同的用户,即您是从命令行而不是从网络服务器运行 PHP?
-
这听起来更像是一个系统管理员问题。如果运行 PHP 的用户有权执行相关程序,则有可能。否则是不可能的。
-
Php 作为 www-data 运行,当我在 php 下连接到 ssh 时,我使用自己的用户帐户登录,因此肯定不是同一个用户。出错的地方在于 shellscript... ssh -n -i $KEYFILE $USER@$HOST "bash ./jpg2xml.sh /tmp/$tmpfile | ./ocr" 由 php 从 shellscript 运行。它确实运行脚本,只有这部分不起作用!
标签: php ssh rsa shell-exec