class Client extends Alvine implements Execute

SSH-Client

Bei der Authentifizierung mit einem Schlüssel, darf dieser nicht mit einem Passwort versehen sein, da sonst der Bug 58573 zum tragen kommt.

Properties

protected Configuration $config
protected resource $session
protected string $host
protected integer $port
protected User $user
protected Credential $credential
protected string $fingerprint

Methods

__construct(string $host, User $user, Credential $credential, integer $port = 22, Configuration $config = null)

Neue Verbindung

__destruct()

Verbindung beenden

doAuthentification()

Anmeldung durchführen

string
getFingerprint()

Fingerabdruck des Servers

Result
execute(string $command)

Anweisungen ausführen

string
getError(resource $stream)

Resource

disconnect()

Verbindung beenden

sendFile(File $localFile, string $remoteFile, integer $mode = 0660)

Lokale Datei übertragen

send(string $data, string $remoteFile, integer $mode = 0660)

Daten übertragen

receiveFile(string $remoteFile, File $localFile)

Datei übertragen

string
receive(string $remoteFile)

Daten empfangen

Details

at line 132
__construct(string $host, User $user, Credential $credential, integer $port = 22, Configuration $config = null)

Neue Verbindung

Die Verbindung zum Server besteht über die gesamte Lebenszeit des Objektes. Die Verbindung kann jedoch auch vorzeitig durch die Methode Client::disconnect() geschlossen werden. In diesem Fall wird beim ausführen von Befehlen eine Exception geworfen.

Parameters

string $host Server
User $user Benutzer
Credential $credential Zugangsdaten
integer $port Port
Configuration $config Konfiguration

Exceptions

ConnectionFailedException

at line 153
__destruct()

Verbindung beenden

at line 168
protected Client doAuthentification()

Anmeldung durchführen

Return Value

Client

Exceptions

AuthenticationException
UnsupportedAuthenticationException

at line 202
string getFingerprint()

Fingerabdruck des Servers

Zeichenkette in der Form SSH2_FINGERPRINT_MD5|SSH2_FINGERPRINT_HEX

Return Value

string

at line 215
Result execute(string $command)

Anweisungen ausführen

Parameters

string $command Befehl

Return Value

Result Ausgabe des Befehls

Exceptions

ConnectionFailedException Verbindungsfehler

at line 244
protected string getError(resource $stream)

Resource

Parameters

resource $stream Stream

Return Value

string Fehler

at line 255
Client disconnect()

Verbindung beenden

Return Value

Client

at line 273
Client sendFile(File $localFile, string $remoteFile, integer $mode = 0660)

Lokale Datei übertragen

Parameters

File $localFile Lokale Datei
string $remoteFile Entfernte Datei
integer $mode Rechte

Return Value

Client

Exceptions

ConnectionFailedException
TransferException

at line 308
Client send(string $data, string $remoteFile, integer $mode = 0660)

Daten übertragen

Eine zeichenkette übertragen und auf dem Zielsystem unter dem Namen $remoteFile abspeichern. Eine vorhandene Datei wird dabei überschrieben. Die Rechte der Datei können über $mode gesetzt werden.

$connection->send('hello world', '/tmp/hallo.txt');

Parameters

string $data Dateiinhalt
string $remoteFile Zieldatei
integer $mode Rechte

Return Value

Client

Exceptions

ConnectionFailedException

at line 330
Client receiveFile(string $remoteFile, File $localFile)

Datei übertragen

Daten aus entfernter Datei in eine lokale Datei übertragen.

Parameters

string $remoteFile entfernte Datei
File $localFile lokale Datei

Return Value

Client

Exceptions

ConnectionFailedException

at line 364
string receive(string $remoteFile)

Daten empfangen

Daten aus entfernter Datei auslesen und den Inhalt als Zeichenkette zurückgeben. Bei der verarbeitung wird die empfangene Datei in eine temporäre Datei gespeichert.

// Daten empfangen und ausgeben
echo $connection->receive('/tmp/hallo.txt');

Parameters

string $remoteFile entfernte Datei

Return Value

string Inhalt

Exceptions

ConnectionFailedException