Stars: 100
Forks: 17
Pull Requests: 7
Issues: 7
Watchers: 3
Last Updated: 2023-06-21 07:49:34
Provides an elegant syntax to connect to SSH servers and execute commands.
License: GNU Lesser General Public License v3.0
Languages: PHP
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.
You can install the PHP SSH Connection package by running the following Composer command.
composer require divineomega/php-ssh-connection
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);