【发布时间】:2010-02-16 18:27:34
【问题描述】:
我目前正试图弄清楚如何使用 PHP 的 shell 函数通过 SSH 连接到另一台服务器。我有一个站点,我必须将数据从 PHP 传递到自定义命令行程序,然后返回输出。在我使用的旧服务器上,这可以通过 exec() 函数实现:
$cmd = '/path/to/custom/program "arg1", "arg2", "arg3"';
exec($cms, $output);
当然,$output 会保存我的程序返回的数据。
我现在处于主机不允许我运行我的自定义程序的位置。但是,PHP 的 shell 函数仍然可用。主持人建议我将 PHP 设置为 SSH 到不同的服务器,运行我需要运行的命令,然后返回输出。这似乎是一种令人难以置信的倒退方式,但我知道什么?
我的具体问题涉及如何将登录信息传递给 exec() 命令。例如,当我手动连接到任何 SSH 服务器时,我输入:
ssh myserver.com -l myusername
然后我看到了:
myusername@myserver.com's password:
如果我将“ssh myserver.com -l myusername”作为命令传递给 exec(),我将如何给它密码?之后,我怎么知道我已正确验证和连接,以便我可以为我的程序运行命令?
哦,另外,我没有可以访问 PHP 中的 ssh2 函数,也无法安装该扩展。
【问题讨论】: