kra*_*mar 6 php ssh centos phpseclib
我从http://phpseclib.sourceforge.net/下载了phpseclib-0.3.10
我的PHP版本:PHP 5.2.4
操作系统:CentOS版本6.6
当我运行以下时,我在这一行得到"分段故障" $ssh->login('username', 'password')
<?php
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
include('Net/SSH2.php');
$ssh=new Net_SSH2('servername');
if (!$ssh->login('username', 'password')) {
exit('Login Failed');
}
echo $ssh->exec('pwd');
?>
Run Code Online (Sandbox Code Playgroud)
我无法找到这个问题的原因.你能帮我找到原因吗?
我的猜测:要么是 fsockopen() 调用,要么是stream_select() 调用。您可以通过将 die() 放入代码中的 login() 及其调用的函数中的连续点来计算出来。
查一下... login() 调用 _login():
https://github.com/phpseclib/phpseclib/blob/0.3.10/phpseclib/Net/SSH2.php#L1801
_login() 调用 _connect():
https://github.com/phpseclib/phpseclib/blob/0.3.10/phpseclib/Net/SSH2.php#L1817
例如。在 Net/SSH2.php 的第 964 行之前添加die('this far')
. 如果它说“到目前为止”,那么尝试在后面添加它。如果在之后而不是之前出现段错误,则可能意味着 fsockopen 是罪魁祸首。
继续这样做,直到出现段错误。die('this far');
在stream_select之前和之后以及任何地方执行一次。然后发布您要连接的线路。
归档时间: |
|
查看次数: |
194 次 |
最近记录: |