sbrow / flysystem-ssh-shell
SSH/Shell adapter for league/flysystem
Requires
- php: ^7
- league/flysystem: ^1.0
- phuxtil/find: ^1
- phuxtil/stat: ^1
- symfony/process: ^4
Requires (Dev)
- ext-posix: *
- phpunit/phpunit: ^8
- symfony/var-dumper: ^3
This package is not auto-updated.
Last update: 2025-03-30 15:02:10 UTC
README
Flysystem adapter for SSH shell.
Installation
composer require phuxtil/flysystem-ssh-shell
Requirements
The following programs installed and configured on local host:
- ssh
- scp
The following programs installed on the remote host:
- find
- cat
- stat
- rmdir
- mkdir
- chmod
- mv
- rm
- sh compatible shell
Configuration
Use League\Flysystem\SshShell\SshShellConfigurator
to pass options to adapter.
$configurator = (new SshShellConfigurator()) ->setRoot('/remote_server/path') ->setUser('remote_user') ->setHost('remote-ssh-host') ->setPrivateKey('path/to/id_rsa.private_key') ->setPort(22);
Authentication
Two authentication methods are supported:
via ssh config
The value of user@host
is configured in ssh config file.
$configurator = (new SshShellConfigurator()) ->setUser('user') ->setHost('host');
Note: This is the default setting.
via ssh private key
$configurator = (new SshShellConfigurator()) ->setUser('user') ->setHost('host') ->setPrivateKey('path/to/id_rsa.private_key');
Passed as -i
option to ssh/scp.
Note: To revert to default setting, unset private key value.
Bootstrap
<?php use League\Flysystem\Filesystem; use Phuxtil\Flysystem\SshShell\SshShellConfigurator; use Phuxtil\Flysystem\SshShell\SshShellFactory; \error_reporting(\E_ALL); include __DIR__ . '/vendor/autoload.php'; $configurator = (new SshShellConfigurator()) ->setRoot('/tmp/remote_fs') ->setUser('user') ->setHost('host'); $adapter = (new SshShellFactory())->createAdapter($configurator); $filesystem = new Filesystem($adapter);
TDD
Default root directory on remote host is /tmp/remote_fs
.
Set values of env variables for TESTS_SSH_USER
and TESTS_SSH_HOST
, or run tests with:
TESTS_SSH_USER=... TESTS_SSH_HOST=... vendor/bin/phpunit
Note: Default value for TESTS_SSH_PORT
is 22.