我有一个带有ssh和键的shellscript连接到AA不同的计算机,因此它不需要用户名和密码。

当我从Commandline运行此脚本时,它可以正常工作..但是,当我从PHP Shell_exec运行此脚本时,它不起作用。

如果我与PHP建立SSH连接并将脚本作为我自己的用户运行,则可以正常工作。

现在我的问题:D是否有办法仅在 shell_exec 从php中没有在SSH上作为其他用户建立连接?

有帮助吗?

解决方案

您是否正确指定了私钥文件?

其他提示

如果您使用的是Ubuntu或Debian,则Web服务器正在使用用户名运行 www-data. 。对于其他系统,请检查Web服务器配置的用户名。您可以简单地测试此用户(和您的PHP Web应用程序)是否能够执行SSH连接。

1)成为您的Web服务器的用户

sudo su www-data

2)尝试连接远程主机

ssh remoteUser@remoteHost

如果您在不输入密码的情况下连接连接,则必须存在不同的问题。如果您必须输入密码,则密钥文件是为其他用户存储的 - 不适合 www-data. 。您已经配置了SSH来使用密钥。为您的本地用户做同样的事情 www-data 它将起作用。

SSH连接似乎不起作用 shell_exec. 。如果我运行 shellscript 在下面 ssh2_exec 它似乎确实有效。

这有点奇怪,因为SSH连接是用公共和私钥在脚本文件中进行的。我认为这只会运行:S

允许Web服务器执行文件,因为其中还有其他命令按预期工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top