dedipanel/phpseclib-wrapper-bundle

PHPSeclib包装器,带有连接管理器、日志记录、特定于操作系统的助手等...

1.0.0 2014-12-26 21:40 UTC

This package is auto-updated.

Last update: 2024-09-14 22:29:32 UTC


README

Build Status Scrutinizer Quality Score

此扩展包含在PHPSeclib库(纯PHP SSH/SFTP客户端)之上的一些有用方法(连接管理、简单密钥存储、安装包的验证等)。

您可以轻松连接到SSH/SFTP服务器并执行一些基本操作(上传、下载、创建目录、创建文件、更改权限等)。您还可以直接访问phpseclib API。包装器提供日志记录功能。

安装

composer require phpseclib/phpseclib 2.0.*@dev
composer require dedipanel/phpseclib-wrapper-bundle ~1.0

如何使用

服务器

您可以使用Bundle提供的服务器对象,或者您可以在Dedipanel\PHPSeclibWrapperBundle\Server\ServerInterface之上实现自己的服务器类。

$server = new Dedipanel\PHPSeclibWrapperBundle\Server\Server;
$server
    ->setHostname('localhost')
    ->setPort(22)
    ->setUser('test')
    ->setPassword('test)
;

### 连接管理器

此扩展提供连接管理器,允许在不同的点使用相同的连接。

$logger  = new Psr\Log\NullLogger(); // logger used to log ssh/sftp interactions.
$manager = $this->container->get('dedipanel.connection_manager');

$connection   = $manager->getConnectionFromServer($server);
$connectionId = $manager->getConnectionId($connection);

生成私钥/公钥

此扩展提供生成公钥/私钥(参见KeyHelper)和存储它(参见FileKeyStore)的简单方法。默认情况下,这些密钥存储和检索到/从文件中,但您可以实现自己的密钥存储策略。

$keyHelper    = $this->container->get('dedipanel.key_helper');
$privateKeyId = uniqid(true); 
$publicKey    = $keyHelper->createKey($privateKeyId);

您还可以使用KeyHelper直接上传公钥到服务器。您需要提供相应的Connection实例。

$keyHelper->createKey($privateKeyId, $connection);

日志记录