oncesk / ssh2
ssh2 client library
Installs: 1 475
Dependents: 0
Suggesters: 0
Security: 0
Stars: 15
Watchers: 3
Forks: 3
Open Issues: 1
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-11-05 07:46:41 UTC
README
Library which provide you ability execute remote commands like in terminal
With this library you can execute any commands using ssh2 protocol.
####Usage
- Password authentication
<?php use Ssh\Client; use Ssh\Auth\Password; $auth = new Password('username', 'password'); $client = new Client('host_name_or_ip'); try { $client->connect()->authenticate($auth); echo $client->exec('pwd'); } catch (\RuntimeException $e) { echo $e->getMessage(); }
- Public key authentication
<?php use Ssh\Client; use Ssh\Auth\PublicKey; $auth = new PublicKey('username', 'path to public key', 'path to private key', 'passphrase if set'); $client = new Client('host_name_or_ip'); try { $client->connect()->authenticate($auth); echo $client->exec('pwd'); } catch (\RuntimeException $e) { echo $e->getMessage(); }
- Command chain
<?php use Ssh\Client; use Ssh\Auth\PublicKey; use Ssh\Command\Result; use Ssh\Command\Chain; $auth = new PublicKey('username', 'path to public key', 'path to private key', 'passphrase if set'); $client = new Client('host_name_or_ip'); try { $client->connect()->authenticate($auth); echo $client ->chain() ->exec('pgrep node', function (Result $result, Chain $chain) { $result = $result->getResult(); if ($result && is_numeric($result)) { $chain->stopChain(); } }) ->exec('/usr/local/bin/node ~/server.js > ~/node_server.log &'); } catch (\RuntimeException $e) { echo $e->getMessage(); }
- With ssh config file
<?php use Ssh\Config\Configuration; use Ssh\Client; $configuration = new Configuration('path to ssh config file like a /home/username/.ssh/config'); $client = new Client($configuration->getHost('hostname')); // now if you need authenticates with password (PasswordAuthentication set to yes) you need to set password $client->getAuth()->setPassword('xxxxx'); // else if you set IdentityFile or PubkeyAuthentication is yes or not set PubkeyAuthentication // trying to find currenct user public key and private key files into ~/.ssh/ directory, if keys not exists // you need authenticates with methods above, if keys exists you can connect and authenticate try { $client->connect()->authenticate(); echo $client->exec('pwd'); } catch (\RuntimeException $e) { echo $e->getMessage(); }
- Shell
With shell you can working like in terminal