PHP Conference Nagoya 2025

ssh2_disconnect

(PECL ssh2 >= 1.0)

ssh2_disconnectClose a connection to a remote SSH server

Description

ssh2_disconnect(resource $session): bool

Close a connection to a remote SSH server.

Parameters

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

Return Values

Returns true on success or false on failure.

See Also

add a note

User Contributed Notes 3 notes

up
4
Cavallo
5 years ago
ssh2_disconnect(...) requires at least PHP 7 (as it requires PECL ssh2 >= 1.0, which the PECL documentation on https://pecl.php.net/package/ssh2 states: "ssh2 1.0 and above is PHP 7 only").

For PHP 5.x similar functionality, try setting the ssh2_connect session variable to null, or unsetting it completely - this should allow PHP's garbage collection close the connection.

Example:

$session=ssh2_connect(...); // open connection
// code here to use connection
$session = null; unset($session); // close connection
up
1
Anton Farber
4 years ago
This function worked fine as long as I didn't use any ssh2_sftp* stuff. As soon as I did, the connection (from my webserver to my browser) was closed without any warning/error in any of the logfiles. So, this won't work

<?php
// ssh2_connect and ssh2_auth etc...
$sftp = ssh2_sftp($connection);
ssh2_disconnect(); // Causes the connection to be reset
?>

while this works

<?php
// ssh2_connect and ssh2_auth etc...
$sftp = ssh2_sftp($connection);
$connection = null; unset($connection);
?>
up
0
Peter Roes
1 year ago
If you derive an sftp connection from an ssh connection you must close the sftp connection before closing the ssh connection if you use ssh2_dissconnect. In other words:

<?php
$ssh_con
=ssh2_connect($sftp_server);
ssh2_auth_password($ssh_con, $sftp_user, $sftp_pass);
$scp_con=ssh2_sftp($ssh_con);

# do stuff with $scp_con

ssh2_disconnect($scp_con);
ssh2_disconnect($ssh_con);
?>
To Top