php实现ssh终端
PHP 实现 SSH 终端连接
在 PHP 中实现 SSH 终端连接通常需要借助扩展或库。以下是两种常见的方法:
使用 phpseclib 库
phpseclib 是一个纯 PHP 实现的 SSH 库,无需额外安装扩展:
安装 phpseclib:
composer require phpseclib/phpseclib
示例代码:
<?php
require 'vendor/autoload.php';
use phpseclib3\Net\SSH2;
$ssh = new SSH2('hostname');
if (!$ssh->login('username', 'password')) {
exit('Login Failed');
}
echo $ssh->exec('ls -la');
?>
使用 SSH2 扩展
PHP 的 SSH2 扩展提供了原生 SSH 功能,需要先安装:
安装 SSH2 扩展:
# Ubuntu/Debian
sudo apt-get install libssh2-1-dev
pecl install ssh2
# CentOS/RHEL
sudo yum install libssh2-devel
pecl install ssh2
在 php.ini 中添加:
extension=ssh2.so
示例代码:
<?php
$connection = ssh2_connect('hostname', 22);
if (!ssh2_auth_password($connection, 'username', 'password')) {
die('Authentication failed');
}
$stream = ssh2_exec($connection, 'ls -la');
stream_set_blocking($stream, true);
echo stream_get_contents($stream);
?>
注意事项
确保服务器已启用 SSH 服务 检查防火墙设置是否允许 SSH 连接 对于生产环境,建议使用密钥认证而非密码 phpseclib 兼容性更好但性能略低于原生扩展 SSH2 扩展需要服务器支持且需额外安装







