此包已被弃用且不再维护。作者建议使用 spatie/ssh 包。

一个轻量级的SSH连接命令执行包,基于 `spatie/ssh`,具有php 5.6兼容性。

1.0.0 2020-02-21 20:16 UTC

This package is not auto-updated.

Last update: 2020-11-23 20:55:10 UTC


README

Latest Version on Packagist GitHub Tests Action Status Total Downloads

此包是原 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。如果您喜欢它,请考虑 支持他们

Ssh 类包含来自 laravel/envoy 的代码

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件