chris-doehring / ssh
Requires
- php: ^5.6.40
- symfony/process: ^3.4
Requires (Dev)
- phpunit/phpunit: ^5.7
- symfony/var-dumper: ^3.4
This package is not auto-updated.
Last update: 2020-11-23 20:55:10 UTC
README
此包是原 spatie/ssh 包的分支,以兼容php5.6。请谨慎使用。
您可以通过以下方式执行SSH命令
Ssh::create('user', 'host')->execute('your favorite command');
它将返回一个 Symfony的 Process
实例。
支持Spatie
由于Spatie是这个包的原始创建者,请考虑 支持他们 或查看他们其他的优秀 开源包。
安装
您可以通过composer安装此包
composer require chris-doehring/ssh
使用
您可以通过以下方式执行SSH命令
$process = Ssh::create('user', 'example.com')->execute('your favorite command');
它将返回一个 Symfony的 Process
实例。
获取命令结果
检查您的命令是否运行成功
$process->isSuccessful();
您可以通过这种方式获取输出
$process->getOutput();
执行多个命令
要执行多个命令,请将数组传递给execute方法。
$process = Ssh::create('user', 'example.com')->execute([ 'first command', 'second command', ]);
选择端口
您可以通过将端口传递给构造函数来选择端口。
$port = 123; Ssh::create('user', 'host', $port);
或者您可以使用 usePort
函数
Ssh::create('user', 'host')->usePort($port);
指定要使用的私钥
您可以使用 usePrivateKey
来指定私钥的路径。
Ssh::create('user', 'host')->usePrivateKey('/home/user/.ssh/id_rsa');
禁用严格的主机密钥检查
默认情况下,启用了严格的主机密钥检查。您可以使用 disableStrictHostKeyChecking
来禁用严格的主机密钥检查。
Ssh::create('user', 'host')->disableStrictHostKeyChecking();
上传和下载文件和目录
您可以使用以下方式将文件和目录上传到主机
Ssh::create('user', 'host')->upload('path/to/local/file', 'path/to/host/file');
或者下载它们
Ssh::create('user', 'host')->download('path/to/host/file', 'path/to/local/file');
底层过程将使用 scp
。
修改Symfony过程
幕后所有命令都将使用 Symfonys Process
来执行。
您可以使用 configureProcess
方法来配置 Process
。以下是一个禁用超时的示例。
Ssh::create('user', 'host')->configureProcess(fn (Process $process) => $process->setTimeout(null));
立即响应输出
通过向 onOuput
传递一个闭包,您可以设置命令产生输出时收到通知。
Ssh::create('user', 'host')->onOutput(fn($type, $line) => echo $line)->execute('whoami');
每当有输出时,闭包将被调用并带有两个参数
type
:这可以是Symfony\Component\Process\Process::OUT
用于常规输出,也可以是Symfony\Component\Process\Process::ERR
用于错误输出line
:输出本身
测试
composer test
变更日志
请参阅变更日志了解最近的变化信息。
贡献
请参阅贡献指南了解详细信息。
安全性
此包已被分叉以与已弃用的 5.6
版本的 PHP 兼容。请考虑使用 7.4
版本的 PHP 和最新的原始包 spatie/ssh。如果您必须使用它,请确保在 Microsoft 的安全回滚版本 上运行。我在此分叉下运行 PHP 5.6 时,我或任何其他贡献者都不提供任何保修。
替代方案
如果您需要更多功能,请查看 DivineOmega/php-ssh-connection。
鸣谢
此包完全基于 spatie/ssh。如果您喜欢它,请考虑 支持他们。
- Chris Döhring (PHP 5.6 集成)
- Freek Van der Herten
- 所有贡献者
Ssh
类包含来自 laravel/envoy 的代码
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。