ssh2
ssh2 copied to clipboard
Library which provide you ability execute remote commands as in terminal
ssh2
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