如何使用 SSH 在另一台服务器上运行 PHP 中的 CLI 命令?

2024-03-11

我正在尝试在 PHP 中运行 CLI 命令,但在不同的服务器上。为了在另一台服务器上运行命令,我使用的是linuxssh命令。为了在 PHP 中运行 CLI 命令,我使用exec().

这有效...

$output = exec('cut -d: -f1 /etc/passwd'); //works!

这可以从一台服务器的命令行运行到另一台服务器......

ssh my.otherserver.com "date"

但是,当我尝试在 PHP 中执行此操作时,它不起作用......

$output = exec('ssh my.otherserver.com "date"'); //does not work!

我想做的事情可能吗?我该怎么做呢?提前致谢。


ssh2_connect 或 phpseclib

您可以使用 ssh2_connect 或 phpseclib。在我的 EC2 实例上,我必须安装 ssh2_connect 的软件包(例如 yum install php56-pecl-ssh2-0.12-5.15.amzn1.x86_64),因为默认情况下它不存在。注意:这也可以使用 bash 脚本来完成。

<?php

//ssh2_connect:
$connection = ssh2_connect('localhost', 22);
ssh2_auth_password($connection, 'user', 'password');
$stream = ssh2_exec($connection, 'ls -l > /tmp/worked.txt');

//phpseclib:
include('Net/SSH2.php');
$ssh = new Net_SSH2('www.example.com');
$ssh->login('username', 'password') or die("Login failed");
echo $ssh->exec('command');

进一步阅读:

http://phpseclib.sourceforge.net/ http://phpseclib.sourceforge.net/

http://php.net/manual/en/function.ssh2-connect.php http://php.net/manual/en/function.ssh2-connect.php

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 SSH 在另一台服务器上运行 PHP 中的 CLI 命令? 的相关文章

随机推荐

  • 使用 JFreeChart 和 Apache PDFBOX 生成图表

    我需要使用生成图表自由图表 http www jfree org jfreechart 然后使用将它们导出为 PDF阿帕奇PDFBOX http pdfbox apache org 我不想使用 iText 因为它不能在专有软件中使用 我搜索
  • VSCode 亮点

    当我将本地函数导入 vscode 时 其中一些函数会正确突出显示 并允许您使用 CTRL LMB 来引导您找到它们 但其中一些函数却没有正确突出显示 这是否是有原因的 这适用于所有主题 而不仅仅是我正在使用的主题 此外 所有进口功能均可用
  • 创建 Word 文档并从 .NET 应用程序添加图像

    我需要一种生成Word文档 从模板或其他东西 并在特定位置插入图像的方法 有人对执行此操作的最佳方法有任何指示吗 几年前 我参与了一个使用 NET 1 1中的办公自动化的项目 效果确实差得难以形容 我假设 OA 要么得到了改进 要么被更好的
  • Jasper iReport Designer 中的表

    我在 Jasper iReport Designer 中创建了一个表 执行报表时 会多次显示同一个表 虽然只使用了单个数据集和表格 请指导 Thanks 尝试将表格组件放入摘要区域 因为详细信息区域会重复数据集中每一行的记录 如果确实需要将
  • 你最喜欢的 Python 模拟库是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何设置 javac 的 PATH 变量以便我可以手动编译我的 .java 作品?

    这是我的驱动器上的地址 C Program Files Java jdk1 6 0 18 bin 我将如何设置路径变量 以便我可以进入命令窗口 windowskey r cmd 并能够键入以下内容 javac TestApp java 我使
  • 在 Windows 7 上使用 XAudio2 进行构建

    我正在尝试使用以下说明来构建一些使用 XAudio2 并在 Windows 7 上运行的代码 http msdn microsoft com en us library windows desktop ee663275 28v vs 85
  • Android Mapbox SDK v10:归因位置;用户界面设置

    如何调整徽标和属性com mapbox mapboxsdk maps MapView 在较旧的 SDK v9 中 可以通过 XML 属性 或通过以编程方式更改 UiSettings 简单地设置 UiSettings mapbox mapbo
  • 旅行商问题,2-opt算法C#实现

    有人能给我一个旅行商问题的 2 opt 算法的代码示例吗 目前 我使用最近邻来查找路径 但这种方法远非完美 经过一些研究 我发现 2 opt 算法可以将该路径纠正到可接受的水平 我找到了一些示例应用程序 但没有源代码 所以我无聊就写了 它l
  • 在 iOS 中创建 JsonString

    我是 iOS 新手 我创建了一个JSON NSDictionary像这样 NSArray keys NSArray arrayWithObjects User Password nil NSArray objects NSArray arr
  • 如何在 django 视图中使用 celery 存储延迟调用的结果?

    我已遵循以下指南http celeryq org docs django celery getting started first steps with django html http celeryq org docs django ce
  • 在 python 中,在下一个之前完成声音?

    在Python pygame中 我希望重复某个wav文件 由pygame mixer Sound foo wav play 循环播放 并让它们一个接一个地播放 最好是在最后一个完成后或默认延迟 1500 毫秒有效 到目前为止 解释一下 我有
  • ruby 中获取可用磁盘空间

    使用 ruby 获取磁盘空间信息的最佳方法是什么 我更喜欢纯红宝石解决方案 如果不可能 即使有额外的 gems 它也可以使用标准 ubuntu 桌面安装中可用的任何命令将信息解析为 ruby 你可以使用sys文件系统 https githu
  • 使用 MediaSource api 在 safari 上流式传输 HLS

    我想使用媒体源扩展来流式传输 HLS 片段 我已经尝试使用 mpeg dash 片段 使用 MP4Box 生成 和媒体源扩展进行相同的操作 var mediaSource new window MediaSource mediaSource
  • R - 从 data.frames 列表中提取信息

    我有两个需求 都连接到类似于下面可重现的数据集 我有一个包含 18 个实体的列表 每个实体由 17 19 个 data frames 的列表组成 可重现的数据集如下 有矩阵而不是 data frames 但我不认为这有什么区别 test l
  • 如何获取 Base64 编码字符串形式的 PIL 图像

    在过去的几个小时里 我一直在尝试创建图像的 Base64 字符串 但它不起作用 ship color 0 100 100 255 img Image new RGBA 100 100 for i in range 20 for j in r
  • 我可以有一个指向可分配数组组件中的项目的指针吗?

    我有一个用户定义的类型vector 在另一种类型中 我有一个可分配的向量数组 我想要一个指向这个可分配数组中的单个向量的指针 所以我想我会这样做 type another type type vector allocatable targe
  • 我可以使用一个登录页面通过 Spring 3.0 Security 重定向不同的页面吗? [复制]

    这个问题在这里已经有答案了 可能的重复 使用 spring security 根据用户角色设置自定义登录后目标 https stackoverflow com questions 2818055 setting custom post lo
  • 在同一事务中插入和删除?

    我有一个包含一些数据的 Temp Table 根据 Temp Table 中的数据 我将从其他表中删除相关行 然后将 Temp table 中的所有数据插入到 table1 中 就像下面的例子一样 我可以以什么方式在 Server2 Tab
  • 如何使用 SSH 在另一台服务器上运行 PHP 中的 CLI 命令?

    我正在尝试在 PHP 中运行 CLI 命令 但在不同的服务器上 为了在另一台服务器上运行命令 我使用的是linuxssh命令 为了在 PHP 中运行 CLI 命令 我使用exec 这有效 output exec cut d f1 etc p