【问题标题】:php script to access remote linux server and execute bash scriptphp脚本访问远程linux服务器并执行bash脚本
【发布时间】:2015-04-03 01:52:26
【问题描述】:

我正在尝试执行以下操作。

让 php 在我们的远程服务器上执行 shell 命令。这是因为我希望能够通过 bash 安装脚本所以 php 将在远程服务器上执行 bash 脚本。

问题是由于某种原因无法连接到远程服务器。我已经尝试了几种方法来做到这一点,我必须使用 root 和密码。稍后我可以考虑加密它们或类似的东西,但我不能使用 ssh 密钥,所以这不起作用。我对其中的 php 部分还很陌生,所以我需要一些帮助来弄清楚如何连接到远程服务器。

我现在正在尝试的代码是

  $ip = '37.130.000.00'; 
$user = 'admin'; 
$pass = 'xxxxxxxxx'; 

$connection = ssh2_connect($ip); 
ssh2_auth_password($connection,$user,$pass); 
$shell = ssh2_shell($connection,"uptime");


 echo $shell;

由于某种原因,这段代码给了我以下错误

致命错误:调用未定义的函数 ssh2_connect() in

我怎样才能使这项工作或我应该做些什么才能正确连接到远程服务器,这一切都应该非常灵活,因为我们正在谈论应该能够以这种方式连接的 100 台服务器。

感谢您的任何意见。

【问题讨论】:

    标签: php linux bash shell ssh


    【解决方案1】:

    该功能由您似乎没有安装的可选扩展程序提供。如果您的系统中有 libssh 和其他依赖项,则通过执行获取 pecl-ssh

    sudo pecl install ssh2 channel://pecl.php.net/ssh2-0.11.3
    

    如果您使用的是 modphp,请重新启动 php-fpm 或 apache。

    编辑:顺便说一句,这个问题之前已经被问过,我见过的最明智的建议之一是切换到纯 php 实现,没有任何 pecl 扩展: php-function-ssh2-connect-is-not-working

    【讨论】:

    • 我明白了,似乎它是我无法使用的东西。还有另一种不需要所有依赖项即可使用php连接到远程主机的方法吗?
    • 查看我的版本,有 phpseclib,您可以直接放入您的项目并立即使用它。
    猜你喜欢
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 2019-12-03
    相关资源
    最近更新 更多