我正在尝试执行以下操作。
在我们的远程服务器上执行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()我如何才能使这项工作或我应该做些什么来正确连接到远程服务器,这一切都应该非常灵活,因为我们正在谈论应该能够以这种方式连接的100服务器。
感谢您的任何意见。
答案 0 :(得分:1)
该功能由您似乎未安装的可选扩展程序提供。如果您的系统中有libssh和其他依赖项,请通过执行
获取pecl-sshsudo pecl install ssh2 channel://pecl.php.net/ssh2-0.11.3
如果您正在使用modphp,请重新启动php-fpm或apache。
编辑:顺便说一下,之前已经问过这个问题,而且我所看到的最明智的建议之一就是切换到一个纯粹的PHP实现,没有任何pecl扩展: php-function-ssh2-connect-is-not-working