通过php如何关闭由php ssh2_connect创建的活动ssh连接?

时间:2012-06-07 07:35:35

标签: php ssh

我使用以下代码创建了一个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()函数吗?

3 个答案:

答案 0 :(得分:3)

是的,未设置就足够了。

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

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

答案 1 :(得分:2)

SSH连接打开,直到关闭:

ssh2_exec($connection, 'exit;');

没有明确的ssh2_close命令。

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

答案 2 :(得分:2)

如果要确保SSH会话已正确关闭,请考虑使用phpseclib, a pure PHP SSH implementation。它使用析构函数发送关闭数据包所需的所有SSH数据包,如果您不想使用具有$ ssh-> disconnect()的数据包。

也可以提供更多便携式代码。