Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在远程服务器上执行PHP脚本文件,而不在远程服务器上复制它_Php_Ssh - Fatal编程技术网

在远程服务器上执行PHP脚本文件,而不在远程服务器上复制它

在远程服务器上执行PHP脚本文件,而不在远程服务器上复制它,php,ssh,Php,Ssh,我有两台linux服务器:A和B 一个PHP脚本在A上,我想在B上执行它,但不在B上处理它,这个脚本永远不应该只存在于ram中的B上,所以在B上没有复制,在A上执行ssh命令,在B上擦除 我有ssh密钥可以从A访问B,但不能从B访问A。 可能是这样的: ssh root@B 'php -r ' | echo /myscript/on_serverA 或 有什么想法吗 注意:这是一个非常特殊的情况,所以我不想要替代或安全建议 您可以指定要在远程计算机上运行的命令的名称作为ssh的参数 PHP将通

我有两台linux服务器:A和B

一个PHP脚本在A上,我想在B上执行它,但不在B上处理它,这个脚本永远不应该只存在于ram中的B上,所以在B上没有复制,在A上执行ssh命令,在B上擦除

我有ssh密钥可以从A访问B,但不能从B访问A。 可能是这样的:

ssh root@B 'php -r ' | echo /myscript/on_serverA

有什么想法吗

注意:这是一个非常特殊的情况,所以我不想要替代或安全建议

您可以指定要在远程计算机上运行的命令的名称作为ssh的参数 PHP将通过STDIN执行一个脚本 通过管道传输到ssh的任何内容都将被传递到正在运行的程序的STDIN中 因此:

…将ssh连接到example.com,在那里运行php,并将test.php的内容从本地计算机传输到远程php

关于这个问题的评论:请注意,如果example.com上有root访问权限的人想要窃取脚本,他们可以用一个包装器替换php可执行文件,该包装器将STDIN记录到文件中,然后再将其转发到真正的php。这远远不是一项防弹安全措施

您可以指定要在远程计算机上运行的命令的名称作为ssh的参数 PHP将通过STDIN执行一个脚本 通过管道传输到ssh的任何内容都将被传递到正在运行的程序的STDIN中 因此:

…将ssh连接到example.com,在那里运行php,并将test.php的内容从本地计算机传输到远程php


关于这个问题的评论:请注意,如果example.com上有root访问权限的人想要窃取脚本,他们可以用一个包装器替换php可执行文件,该包装器将STDIN记录到文件中,然后再将其转发到真正的php。这远非防弹安全措施。

我有两辆车。我想开我的快车,但我也不想离开我的慢车舒适的座位。我怎样才能开快车而不离开舒适的车?为什么你不能复制文件?因为我问这个问题。。。。我当然可以复制文件,但我不想!拥有服务器B的root访问权限但不在服务器A上的人不应该强化脚本。更好的安全概念是只允许受信任的人使用root访问服务器。不可能,非常特殊的情况下,我不需要安全建议。我可以回答:如果这些人对磁盘有物理访问权,root访问不是唯一的问题,这只是一个例子。我有两辆车。我想开我的快车,但我也不想离开我的慢车舒适的座位。我怎样才能开快车而不离开舒适的车?为什么你不能复制文件?因为我问这个问题。。。。我当然可以复制文件,但我不想!拥有服务器B的root访问权限但不在服务器A上的人不应该强化脚本。更好的安全概念是只允许受信任的人使用root访问服务器。不可能,非常特殊的情况下,我不需要安全建议。我可以回答:如果这些人有对磁盘的物理访问权,那么根访问不是唯一的问题,这只是一个例子。
<?php
$script=file_get_contents('executable_php_script');
system('ssh root@IP \'php -r "'.$script.'"\'');
ssh example.com php < test.php