【问题标题】:SSH session through PHP通过 PHP 的 SSH 会话
【发布时间】:2010-12-14 15:19:33
【问题描述】:

我在通过 PHP 进行 ssh 会话时遇到问题。我看起来高高在低,无法弄清楚如何做到这一点。我在您的一篇帖子中看到您说您能够建立这种联系,我将非常感谢您的帮助。我已经包含了一个名为“class.shell2.php”的文件,它具有我需要的基本功能,即连接到 ssh 服务器并将命令发送到终端。但是,当我尝试连接到服务器时,它给了我一个错误“致命错误:在 /*/**/* 中调用未定义的函数 ssh2_connect() */class.shell2.php 在第 62 行"请帮助我。

谢谢

【问题讨论】:

    标签: php mysql ssh


    【解决方案1】:

    SSH2 函数 (including ssh2_connect()) 不是基本 php 发行版的一部分。它们可通过 PECL 获得。

    Check the "Installing/Configuring" page for SSH2 on the PHP documentation site 获取有关如何安装此模块的信息。

    【讨论】:

    • 我查看了该文档,但无法弄清楚它是如何工作的。我在 Mac 上,我相信这些指令是针对 darwin 还是 linux 的?我相信我已经安装了所有东西,但它仍然不适合我。有没有关于如何在 mac 上进行这项工作的指南?
    • Mac OS-X “达尔文”。他们是一样的。如果您有关于达尔文的说明,请按照这些说明进行操作。如果它仍然不起作用,那么您需要编辑您的答案,并准确告诉我们您尝试了什么;以及你得到了什么结果(和错误)。或者,您可以考虑使用proc_open()shell_exec() 将ssh 作为命令行应用程序调用。如果您的需求相当简单,这可以很好地工作,但您需要设置 ssh 客户端证书以进行身份​​验证。
    • 我很抱歉它不是 darwin 它的 debian 我相信我不确定。但是我找到了另一个名为 phpseclib 的包,它有一个 net_ssh2 类,用于从 php 建立 ssh 连接,但是我无法连接我每次都收到失败的登录消息。我有设置和示例状态,但无法登录。手册在线。我需要做的就是与另一台计算机建立 ssh 连接并从终端执行串行命令。我可以用 proc-open() 或 shell_exec() 来做这件事吗?我尝试了 shell_exec,但我将如何输入用户名和密码以进行 shh 会话。
    • 是的:shell_exec('ssh username@hostname.com \'some command\'')。您需要使用 SSH 客户端证书而不是密码进行身份验证——这将允许您的脚本在不提供密码的情况下安全登录。 Here's how to setup a client certificate。我建议您在 ssh 中包含 -i 选项,以确保 ssh 在从 PHP 运行时正确获取您的身份文件。
    猜你喜欢
    • 1970-01-01
    • 2021-11-20
    • 2021-08-22
    • 1970-01-01
    • 2012-01-31
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    相关资源
    最近更新 更多