Josh Foskett
Josh Foskett

Reputation: 4121

SSH2 returning "resource(2) of type (stream)" (PHP)

I'm attempting to run a SSH command from a remote server with PHP's ssh2 library using the ssh2_exec function.

Instead of getting what I want returned back to me from SSH, I get this:

resource(2) of type (stream)

Sometimes the 2 is a 3 if that matters.

Here is the code that I'm attempting to use:

<?php

$connection = ssh2_connect('ssh.example.com', 22);

ssh2_auth_password($connection, 'root', 'password');

if($output = ssh2_exec($connection, 'uptime')) {

    var_dump($output);

}

Working solution:

<?php

$connection = ssh2_connect('ssh.example.com', 22);

ssh2_auth_password($connection, 'root', 'password');

if($output = ssh2_exec($connection, 'uptime')) {

    stream_set_blocking($output, true);

    echo stream_get_contents($output);

}

Upvotes: 1

Views: 15226

Answers (1)

Francis Avila
Francis Avila

Reputation: 31641

Read the documentation:

Return Values

Returns a stream on success or FALSE on failure.

A stream is a file-like object. You can get data from it with stream functions or file handle functions like fread.

E.g.

$string = stream_get_contents($stream);

$line = stream_get_line($stream);

$fivebytes = fread($stream, 5);

Upvotes: 4

Related Questions