Connect Manager

NativeSshSession implements SshSessionInterface, SftpChannelInterface

FinalYes

Нативная SSH-2 сессия на PHP openssl/gmp без Composer runtime-зависимостей.

Tags
SuppressWarnings

("PHPMD.ErrorControlOperator")

("PHPMD.CyclomaticComplexity")

("PHPMD.NPathComplexity")

("PHPMD.ExcessiveClassComplexity")

("PHPMD.ExcessiveClassLength")

("PHPMD.ExcessiveMethodLength")

("PHPMD.CouplingBetweenObjects")

("PHPMD.ShortVariable")

("PHPMD.StaticAccess")

("PHPMD.BooleanArgumentFlag")

("PHPMD.EmptyCatchBlock")

("PHPMD.TooManyMethods")

Table of Contents

Interfaces

SshSessionInterface
Внутренний контракт прикладной SSH-сессии без внешних Composer-зависимостей.
SftpChannelInterface
Канал обмена SFTP-PDU поверх уже установленной SSH-сессии.

Methods

__construct()  : mixed
Выполняет identification, KEX, userauth и опционально SFTP INIT.
disconnect()  : void
Корректно отключает сессию (DISCONNECT) и освобождает транспорт.
exec()  : string
Выполняет команду на удалённом хосте через channel request «exec».
isConnected()  : bool
Проверяет, что сессия ещё активна после handshake и аутентификации.
openSftp()  : SftpClient
Открывает SFTP subsystem поверх той же SSH-сессии.
read()  : string
Читает доступные данные из буфера session-канала.
receiveSftp()  : string
Читает один полный SFTP payload (уже без внешнего length framing).
sendSftp()  : void
Отправляет SFTP payload без внешнего uint32 length framing (его добавляет клиент).
write()  : void
Пишет данные в открытый session-канал (CHANNEL_DATA).

Methods

__construct()

Выполняет identification, KEX, userauth и опционально SFTP INIT.

public __construct(mixed $stream, AuthCredentials $auth[, bool $preferSftp = false ]) : mixed
Parameters
$stream : mixed

PHP stream resource после TCP connect

$auth : AuthCredentials

Password или publickey

$preferSftp : bool = false

true — сразу поднять SFTP subsystem

Tags
throws
ConnectionException

При неверном stream, отсутствии gmp или ошибке протокола

disconnect()

Корректно отключает сессию (DISCONNECT) и освобождает транспорт.

public disconnect() : void

Отправляет DISCONNECT (reason 11) и закрывает wire.

Attributes
#[Override]

exec()

Выполняет команду на удалённом хосте через channel request «exec».

public exec(string $command) : string
Parameters
$command : string

Команда для exec

Tags
throws
ConnectionException

При закрытой сессии или ошибке протокола

Attributes
#[Override]
Return values
string —

Вывод канала до EOF

isConnected()

Проверяет, что сессия ещё активна после handshake и аутентификации.

public isConnected() : bool
Attributes
#[Override]
Return values
bool —

true после успешного конструктора до disconnect()

openSftp()

Открывает SFTP subsystem поверх той же SSH-сессии.

public openSftp() : SftpClient
Tags
throws
ConnectionException

Если SFTP не поднялся

Attributes
#[Override]
Return values
SftpClient —

Клиент поверх этой сессии

read()

Читает доступные данные из буфера session-канала.

public read([int $maxLength = 8192 ]) : string
Parameters
$maxLength : int = 8192

Максимум байт; ≤0 трактуется как 1

Tags
throws
ConnectionException

При закрытой сессии

Attributes
#[Override]
Return values
string —

Фрагмент буфера или ''

receiveSftp()

Читает один полный SFTP payload (уже без внешнего length framing).

public receiveSftp() : string
Tags
throws
ConnectionException

При ошибке чтения framing

Attributes
#[Override]
Return values
string —

Один SFTP payload без внешнего uint32 length

sendSftp()

Отправляет SFTP payload без внешнего uint32 length framing (его добавляет клиент).

public sendSftp(string $sftpPayload) : void
Parameters
$sftpPayload : string

Тело SFTP без внешнего length

Tags
throws
ConnectionException

При ошибке записи

Attributes
#[Override]

write()

Пишет данные в открытый session-канал (CHANNEL_DATA).

public write(string $payload) : void
Parameters
$payload : string

Байты CHANNEL_DATA

Tags
throws
ConnectionException

При закрытой сессии или ошибке записи

Attributes
#[Override]
On this page

Search results