dedipanel / phpseclib-wrapper-bundle
PHPSeclib包装器,带有连接管理器、日志记录、特定于操作系统的助手等...
1.0.0
2014-12-26 21:40 UTC
Requires
- php: >=5.3.2
- phpseclib/phpseclib: 2.0.*@dev
- psr/log: >=1.0,<2.0
- symfony/framework-bundle: >=2.1
- symfony/twig-bundle: >=2.3.0
- symfony/validator: >=2.1
Requires (Dev)
- doctrine/orm: ~2.2,>=2.2.3
- phpunit/phpunit: 3.7.x-dev
Suggests
- ext-gmp: Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.
- ext-mcrypt: Install the Mcrypt extension in order to speed up a wide variety of cryptographic operations.
- monolog/monolog: Allows more advanced logging of ssh/sftp connections.
This package is auto-updated.
Last update: 2024-09-14 22:29:32 UTC
README
此扩展包含在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);