dedipanel / phpseclib-wrapper-bundle
PHPSeclib Wrapper with connections manager, logging, os-specific helpers, ...
Installs: 4 414
Dependents: 1
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 3
Open Issues: 1
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-12-14 23:01:08 UTC
README
This bundle contains useful methods (connection management, easy key storing, verification on installed packets ...) on top of PHPSeclib library (pure php ssh/sftp client).
You can easily connect to ssh/sftp servers and do some basic operations (upload, download, mkdir, touch, chmod, ...). You can also access directly the phpseclib API. The wrapper provide logging functionnality.
Install
composer require phpseclib/phpseclib 2.0.*@dev
composer require dedipanel/phpseclib-wrapper-bundle ~1.0
How to use
Server
You can use Server objects provided by the Bundle or you can implement your own Serer class on top of Dedipanel\PHPSeclibWrapperBundle\Server\ServerInterface
.
$server = new Dedipanel\PHPSeclibWrapperBundle\Server\Server;
$server
->setHostname('localhost')
->setPort(22)
->setUser('test')
->setPassword('test)
;
### Connection Manager
The bundle provide a connection manager, allowing to use the same connection at different points :
$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);
Generate private/public key
The bundle provide easy way to generate public/private key (see KeyHelper) and to store it (see FileKeyStore). By default, these keys are stored and retrieved to/from files, but you can implements you own KeyStore strategy.
$keyHelper = $this->container->get('dedipanel.key_helper');
$privateKeyId = uniqid(true);
$publicKey = $keyHelper->createKey($privateKeyId);
You can also use the KeyHelper for directly uploading the public key to the server. You will need to provide a Connection
instance for that :
$keyHelper->createKey($privateKeyId, $connection);