我是php和phpseclib的新手。
我打算在php中编写一个SSH客户端作为我项目的一部分。我正在使用phpseclib库。
在我的项目中,公钥将上传到仅支持openSSH和Putty密钥格式(公钥)的服务器(路由器)。
我使用puttykeygen
创建了密钥对。我在php写了一个SSH客户端。但在显示加载一段时间后,它显示:
注意:我认为这不是因为执行时间有限(30秒)
致命错误:第2699行的C:\ xampp \ htdocs \ pages \ Net \ SSH2.php超出最多执行时间30秒
我的代码:
<?php
include('Net/SSH2.php');
include('Crypt/RSA.php');
$ssh = new Net_SSH2('remoteip');
$key = new Crypt_RSA();
$key->loadKey(file_get_contents('sshprivatekeyfile'));
if (!$ssh->login('admin', $key)) {
print_r($ssh->getError());
exit('Login Failed');
}
echo $ssh->exec('show clients');/any router commands/*
?>
答案 0 :(得分:0)
答案 1 :(得分:0)
在CLI(Linux)上执行ping 192.168.10.1
。它结束了吗?它不适合我。它只是永远地发送数据。所以这可能就是为什么它适合你的原因。因为ping命令实际上并没有结束。
有两种解决方案。
ping -c 4 192.168.10.1
$ssh->setTimeout(4)
之前$ssh->exec()
。