Skip to content

oncesk/ssh2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Library which provide you ability execute remote commands as in terminal

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages