PHP Conference Japan 2024

ssh2_disconnect

(PECL ssh2 >= 1.0)

ssh2_disconnect关闭到远程 SSH 服务器的连接

描述

ssh2_disconnect(资源 $session): 布尔值

关闭到远程 SSH 服务器的连接。

参数

session

一个 SSH 连接链接标识符,从调用 ssh2_connect() 获得。

返回值

成功时返回 true,失败时返回 false

参见

添加注释

用户贡献的注释 3 条注释

Cavallo
5 年前
ssh2_disconnect(...) 至少需要 PHP 7(因为它需要 PECL ssh2 >= 1.0,PECL 文档在 https://pecl.php.net/package/ssh2 中声明:“ssh2 1.0 及以上版本仅适用于 PHP 7”)。

对于 PHP 5.x,请尝试将 ssh2_connect 会话变量设置为 null 或完全取消设置它 - 这应该允许 PHP 的垃圾回收关闭连接。

示例

$session=ssh2_connect(...); // 打开连接
// 在此处使用连接的代码
$session = null; unset($session); // 关闭连接
Anton Farber
4 年前
只要我不使用任何 ssh2_sftp* 东西,此函数就可以正常工作。一旦我使用了它,连接(从我的 Web 服务器到我的浏览器)就会在没有任何警告/错误的情况下关闭任何日志文件。所以,这行不通

<?php
// ssh2_connect 和 ssh2_auth 等...
$sftp = ssh2_sftp($connection);
ssh2_disconnect(); // 导致连接重置
?>

而这可以工作

<?php
// ssh2_connect 和 ssh2_auth 等...
$sftp = ssh2_sftp($connection);
$connection = null; unset($connection);
?>
Peter Roes
1 年前
如果您从 ssh 连接派生 sftp 连接,则如果使用 ssh2_dissconnect,则必须在关闭 ssh 连接之前关闭 sftp 连接。换句话说

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

# 对 $scp_con 执行操作

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