我想为自动化测试工具制作一个 GUI,目前在 CLI 中,我们需要将其转换为 ig GUI,现在我面临的问题是我选择了 HTML、CSS、JS 作为前端,PHP 作为后端,所以你们中的任何一个都可以建议我如何登录到有一些 IP 的服务器吗?或者只是如何使用 PHP 代码登录到 linux 服务器?
5 回答
libssh2 扩展是一个 PITA。难以安装和使用。我的建议。使用 phpseclib。例子:
<?php
include('Net/SSH2.php');
$ssh = new Net_SSH2('hostname', 22);
if (!$ssh->login('username', 'password')) {
exit('Login Failed');
}
echo $ssh->exec('php -v');
?>
您可以使用“Secure Shell2”PHP 模块通过 SSH 打开连接。
https://php.net/manual/en/book.ssh2.php
// 打开一个 SSH 连接(主机名 = 远程计算机的 IP 或网络名称)
$connection = ssh2_connect('主机名', 22);
// 通过登录名/密码进行身份验证
ssh2_auth_password($connection, '用户名', '密码');
然后执行命令:
// 在远程计算机上执行一个 shell 命令(例如 'php -v' 来了解 PHP 版本)
$stream = ssh2_exec($connection, 'php -v');
// 从远程计算机读取结果到本地计算机
stream_set_blocking($stream, true);
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
// 在本地计算机上打印结果
回声流获取内容($stream_out);
使用 PHP,您无法登录服务器,因为您只运行 php 脚本,但实际上您并不是一个做事的用户。也就是说,有一个为 php-scripts 设置的用户。每次您发送请求以获取用户运行脚本并发送结果的 php 文件时。
如果要从服务器输出数据,则必须通过 php 访问这些数据。您可以将这些 PHP 文件作为网站的一部分打开。
您无需从 PHP 登录到服务器,但是如果您的 Web 服务器在您尝试控制的同一台服务器上运行,您可以轻松地从 PHP 执行 shell 命令和脚本。 shell_exec
请注意您授予命令和脚本的权限。
如何执行“service bind9 restart”使用phpseclib ..代码为:
<?php include('Net/SSH2.php');
$ssh = new Net_SSH2('xxxx');
if (!$ssh->login('xx', 'xxx')) {
exit('Login Failed');
}
echo $ssh->exec('service bind9 restart');
?>
输出:bind9:无法识别的服务
谢谢