1

我继承了这个 Intranet 应用程序,它解压缩了一些请求的假脱机报告并将它们转储到用户可以访问的 Samba 文件夹中。这是PHP:

$command = "$unzip_program $path_spooled/$zip_file $filename -d $target_dir";
$ssh_command = "$ssh_syscommand -i /web/live/sshkey_nopass reportuser@$archive_server \"$command\"";

$sshpipe2 = popen( $ssh_command, 'r' );

因此,如果我回显正在运行的 SSH 命令,它是:

/usr/bin/ssh -i /web/live/sshkey reportuser@192.168.1.21 "/usr/bin/unzip -c /reports/spooled/2012/jan.zip 01SU7C.RPT" |
/usr/bin/ssh -i /web/live/sshkey reportuser@192.168.1.2 "cat > /reports/spooled/01SU7C.RPT"

(为了便于阅读,我在管道后面插入了一个回车)

如果我从命令行执行该命令,它工作正常。如果从 php 运行它会失败且没有错误。

我所需要的只是一些帮助确定在哪里寻找。我认为它可能是缺少 ssh 密钥,但服务器在执行命令时确实显示了该用户的登录信息。

我错过了什么?我应该去哪里看?解压缩有什么我不知道的吗?我需要从 Apache 设置某种上下文吗?

4

0 回答 0