当前位置:首页 > PHP

php实现ssh终端

2026-01-29 01:07:31PHP

使用 phpseclib 库实现 SSH 连接

phpseclib 是一个纯 PHP 实现的 SSH 库,无需额外扩展。安装可通过 Composer:

composer require phpseclib/phpseclib:~3.0

连接示例代码:

php实现ssh终端

use phpseclib3\Net\SSH2;

$ssh = new SSH2('hostname');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}

echo $ssh->exec('ls -la');

通过系统命令调用 SSH

若服务器已安装 OpenSSH,可用 PHP 直接调用系统命令:

$command = "ssh username@hostname 'ls -la'";
$output = shell_exec($command);
echo $output;

建立交互式终端

使用 proc_open 实现基础交互:

php实现ssh终端

$descriptors = [
    0 => ["pipe", "r"],  // stdin
    1 => ["pipe", "w"],  // stdout
    2 => ["pipe", "w"]   // stderr
];

$process = proc_open('ssh username@hostname', $descriptors, $pipes);
if (is_resource($process)) {
    fwrite($pipes[0], "ls -la\n");
    fclose($pipes[0]);

    echo stream_get_contents($pipes[1]);
    fclose($pipes[1]);
    proc_close($process);
}

密钥认证方式

使用密钥登录更安全:

use phpseclib3\Crypt\PublicKeyLoader;

$key = PublicKeyLoader::load(file_get_contents('/path/to/private.key'));
$ssh = new SSH2('hostname');
if (!$ssh->login('username', $key)) {
    exit('Login Failed');
}

异常处理

建议添加异常捕获:

try {
    $ssh = new SSH2('hostname');
    $ssh->login('username', 'password');
    echo $ssh->exec('whoami');
} catch (Exception $e) {
    echo 'Error: ' . $e->getMessage();
}

注意事项

  • 确保服务器已开启 SSH 服务(默认端口 22)
  • 生产环境建议使用密钥认证而非密码
  • 长时间操作需设置超时:$ssh->setTimeout(30)
  • 敏感信息应存储在环境变量中,避免硬编码

标签: 终端php
分享给朋友:

相关文章

php实现统计

php实现统计

PHP 实现统计功能 在 PHP 中实现统计功能通常涉及数据的收集、处理和展示。以下是一些常见的统计实现方法: 数据库数据统计 通过 SQL 查询可以直接从数据库中获取统计结果: $conn =…

php 队列的实现

php 队列的实现

PHP 队列的实现方法 使用数据库实现队列 创建一个数据表存储队列任务,包含任务ID、状态、创建时间等字段。通过SQL语句实现任务的入队和出队操作。 // 入队操作 INSERT INTO queu…

php mvc实现

php mvc实现

PHP MVC 实现步骤 模型(Model)层 模型负责数据处理和业务逻辑,通常与数据库交互。创建一个基类模型,其他具体模型继承它。 class Model { protected $db;…

php数组实现

php数组实现

PHP 数组的基本实现 PHP 数组是一种非常灵活的数据结构,可以存储多个值,并且支持多种类型的键(整数或字符串)。PHP 数组实际上是有序映射(ordered map),可以看作是列表(vector…

php实现注册登录

php实现注册登录

PHP 注册功能实现 创建数据库表(以 MySQL 为例) CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, usern…

php登陆功能实现

php登陆功能实现

实现PHP登录功能 数据库准备 创建一个用户表存储登录信息,基本字段包括用户名、密码(需加密)等: CREATE TABLE users ( id INT AUTO_INCREMENT PR…