divineomega / php-ssh-connection
Provides an elegant syntax to connect to SSH servers and execute commands.
Fund package maintenance!
DivineOmega
Installs: 95 217
Dependents: 3
Suggesters: 0
Security: 0
Stars: 108
Watchers: 3
Forks: 22
Open Issues: 5
Requires
- php: >=7.1
- phpseclib/phpseclib: ^2.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^7.0||^8.0
README
The PHP SSH Connection package provides an elegant syntax to connect to SSH servers and execute commands. It supports both password and public-private keypair authentication, and can easily capture command output and errors.
Installation
You can install the PHP SSH Connection package by running the following Composer command.
composer require divineomega/php-ssh-connection
Usage
See the following basic usage instructions.
$connection = (new SSHConnection()) ->to('test.rebex.net') ->onPort(22) ->as('demo') ->withPassword('password') // ->withPrivateKey($privateKeyPath) // ->timeout(0) ->connect(); $command = $connection->run('echo "Hello world!"'); $command->getOutput(); // 'Hello World' $command->getError(); // '' $connection->upload($localPath, $remotePath); $connection->download($remotePath, $localPath);
For security, you can fingerprint the remote server and verify the fingerprint remains the same upon each subsequent connection.
$fingerprint = $connection->fingerprint(); if ($newConnection->fingerprint() != $fingerprint) { throw new Exception('Fingerprint does not match!'); }
If you wish, you can specify the type of fingerprint you wish to retrieve.
$md5Fingerprint = $connection->fingerprint(SSHConnection::FINGERPRINT_MD5); // default $sha1Fingerprint = $connection->fingerprint(SSHConnection::FINGERPRINT_SHA1);