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* 的東西,這個函式就能正常運作。一旦我使用了,連線(從我的網路伺服器到我的瀏覽器)就會在任何日誌檔案中沒有任何警告/錯誤的情況下關閉。所以,這行不通

<?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_disconnect 關閉 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