PHPSeclib Wrapper with connections manager, logging, os-specific helpers, ...
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.
composer require phpseclib/phpseclib 2.0.*@dev composer require dedipanel/phpseclib-wrapper-bundle ~1.0
You can use Server objects provided by the Bundle or you can implement your own Serer class on top of
$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);
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 :