gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 14:10:55 25 4
gpt4 key购买 nike

我有两个(linux)服务器:A 和 B
PHP脚本在A上,我想在B上执行它但不在B上处理它,这个脚本不应该存在于B上(仅在ram中),所以没有“B上的复制,从A上的ssh命令执行,删除乙”。
我有 ssh key 可以从 A 访问 B,但没有从 B 访问 A。
也许是这样的:

ssh root@B 'php -r ' | echo /myscript/on_serverA
或者
<?php
$script=file_get_contents('executable_php_script');
system('ssh root@IP \'php -r "'.$script.'"\'');
有任何想法吗?
注意:这是一个非常具体的案例,所以我不想要替代或安全建议。

最佳答案

  • 您可以指定要在远程机器上运行的命令的名称作为 ssh
  • 的参数。
  • PHP 将执行一个通过 STDIN
  • 传送到其中的脚本
  • 任何通过管道传送到 ssh 的内容将被传递到正在运行的程序的 STDIN

  • 因此:
    ssh example.com php < test.php
    … 将 SSH 到 example.com , 运行 php在那里并通过管道传输 test.php的内容从本地机器到远程 php .

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

    关于php - 在远程服务器上执行 PHP 脚本文件,而不在远程服务器上复制它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64534949/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com