legobox-co/quick-ssh

此包最新版本(v0.1.0)没有提供许可证信息。

ssh包,用于连接服务器

v0.1.0 2018-05-13 21:19 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:49:19 UTC


README

管理到服务器的ssh连接,创建密钥,运行进程并记录结果,目前处于开发中

安装

要安装此包,只需运行

$ composer require legobox-co/quick-ssh

接下来,继续注册服务提供商,以便包对您的应用可见。在config/app.php中,并附带其门面,以便易于访问

<?php
...
return [
  'providers' => [
    ...
    Legobox\QuickSsh\SshServiceProvider::class,
    ...
  ],
  
  'aliases' => [
    ...
    'QuickSsh' => 'Legobox\QuickSsh\Facades\QuickSsh::class',
    ...
  ]
]

接下来,您可以继续发布配置,以便您可以更改默认值。

$ php artisan vendor:publish --provider="Legobox\QuickSsh\SshServiceProvider"

用法

让我们看看如何使用这个库

创建SSH密钥。

为了创建ssh密钥对

use QuickSsh;
$keys = QuickSsh::createKeys($value = null);
$keys->publicKey // return the public key
$keys->privateKey // return the private key

连接到服务器

use QuickSsh;
// server options host, keytext, username
$serverInstance = QuickSsh::connector($serverOptions)->connect();

运行进程

要在默认远程连接上运行命令,请使用实例上的run方法

$serverInstance->run([
    'cd /var/www',
    'git pull origin master',
]);

从命令中捕获输出

您可以通过将闭包传递给run方法来捕获远程命令的“实时”输出

$serverInstance->run($commands, function($line)
{
    echo $line.PHP_EOL;
});

任务

如果您需要定义一组应始终一起运行的命令,您可以使用define方法定义一个任务

$serverInstance->define('deploy', [
    'cd /var/www',
    'git pull origin master',
    'php artisan migrate',
]);

一旦任务被定义,您可以使用task方法来运行它

$serverInstance->task('deploy', function($line)
{
    echo $line.PHP_EOL;
});

SFTP下载

实例包括一个简单的方法,使用get和getString方法下载文件

$serverInstance->get($remotePath, $localPath);

$contents = $serverInstance->getString($remotePath);

SFTP上传

SSH类还包括一个简单的方法,使用put和putString方法将文件或字符串上传到服务器

$serverInstance->put($localFile, $remotePath);
$serverInstance->putString($remotePath, 'Foo');