Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/oliwierptak/flysystem-ssh-shell
SSH/Shell adapter for league/flysystem
https://github.com/oliwierptak/flysystem-ssh-shell
adpter filesystem flysystem flysystem-adapter php sh shell ssh
Last synced: about 1 month ago
JSON representation
SSH/Shell adapter for league/flysystem
- Host: GitHub
- URL: https://github.com/oliwierptak/flysystem-ssh-shell
- Owner: oliwierptak
- License: mit
- Created: 2019-06-14T15:54:30.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-01-17T16:22:37.000Z (11 months ago)
- Last Synced: 2024-09-18T11:49:13.274Z (3 months ago)
- Topics: adpter, filesystem, flysystem, flysystem-adapter, php, sh, shell, ssh
- Language: PHP
- Size: 161 KB
- Stars: 6
- Watchers: 0
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# flysystem-ssh-shell
Flysystem adapter for SSH shell.
### Installation```bash
composer require phuxtil/flysystem-ssh-shell
```_Note_: Use v1.x for compatibility with PHP v7.0.x
_Note_: Use v2.x for compatibility with PHP v7.2+### Requirements
The following programs installed and configured on local host:
- ssh
- scpThe following programs installed on the remote host:
- find
- cat
- stat
- rmdir
- mkdir
- chmod
- mv
- rm
- sh compatible shell### Configuration
Use `\Phuxtil\Flysystem\SshShell\SshShellConfigurator` to pass options to adapter.
```php
$configurator = (new \Phuxtil\Flysystem\SshShell\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.
```php
$configurator = (new \Phuxtil\Flysystem\SshShell\SshShellConfigurator())
->setUser('user')
->setHost('host');
```
_Note: This is the default setting._#### via ssh private key
```php
$configurator = (new \Phuxtil\Flysystem\SshShell\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
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`.
Available parameters:
- `TESTS_SSH_USER`
- `TESTS_SSH_HOST`
- `TEST_SSH_PORT` (optional, default 22)Run tests with:
```shell
TESTS_SSH_USER=... TESTS_SSH_HOST=... vendor/bin/phpunit --group acceptance
```