Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Phpseclib挂起在read()上_Php_Ssh_Phpseclib - Fatal编程技术网

Phpseclib挂起在read()上

Phpseclib挂起在read()上,php,ssh,phpseclib,Php,Ssh,Phpseclib,我正在尝试执行sudo命令 使用来自 但脚本在首次读取()后挂起。之后,我需要重新启动整个服务器,apache继续工作,但php不工作。引用以下示例: <?php include('Net/SSH2.php'); $ssh = new Net_SSH2('www.domain.tld'); if (!$ssh->login('username', 'password')) { exit('Login Failed'); } echo $ssh->read('use

我正在尝试执行sudo命令 使用来自

但脚本在首次读取()后挂起。之后,我需要重新启动整个服务器,apache继续工作,但php不工作。

引用以下示例:

<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}

echo $ssh->read('username@username:~$');
$ssh->write("sudo ls -la\n");
$output = $ssh->read('#[pP]assword[^:]*:|username@username:~\$#', NET_SSH2_READ_REGEX);
echo $output;
if (preg_match('#[pP]assword[^:]*:#', $output)) {
    $ssh->write("password\n");
    echo $ssh->read('username@username:~$');
}
?>

username@username:~$
是提示的占位符。您是否将其更改为服务器上的任何提示


如果您通过PuTTY或OpenSSH或其他任何方式进行SSH,您可以看到这样的提示。或者,您可以执行
$ssh->setTimeout(2)
。此时,
$ssh->read()
将在两秒钟后返回,并从ssh服务器返回任何输出。无论提示是什么,都应该在该输出中。

如果您认为这是答案,请标记答案:)