1

我使用以下代码创建了一个 ssh 连接。

    $connection = ssh2_connect($masterIp, 22);

    // authenticating the remote server connection with credentials
    ssh2_auth_password($connection, $user, $password);

    // secure ftp connection to create directory if not exist
    $sftp = ssh2_sftp($connection);

完成操作后我需要关闭 $connection, $sftp。如何安全地关闭连接。我可以使用 unset() 函数吗?

4

3 回答 3

3

是的,未设置就足够了。

在 PHP 中,当资源超出范围或未设置时,它们会自动关闭(无论如何都应该关闭,除非扩展破坏了标准的 PHP 模型)。

(好吧,它只会在对资源的所有引用都被销毁时被车库收集并因此关闭)

于 2012-06-07T08:52:00.833 回答
2

如果您想确保您的 SSH 会话正确关闭,请考虑使用phpseclib,一个纯 PHP SSH 实现。它发送所有必需的 SSH 数据包,以使用析构函数关闭数据包,如果您不想使用它,它有一个 $ssh->disconnect()。

也使代码更具可移植性。

于 2012-06-07T17:17:42.617 回答
1

SSH 连接一直打开直到关闭:

ssh2_exec($connection, 'exit;');

没有明确的ssh2_close命令。

很有可能unset也会终止网络连接。至少当 PHP 进程结束时,连接应该会自动关闭。

于 2012-06-07T08:53:13.410 回答