系统:Linux
服务器:XAMPP
目标:
到服务器的ssh连接(稍后:在此服务器上执行某些操作,而不是此问题的一部分)
测试代码:

 <?php
    set_include_path(get_include_path().PATH_SEPARATOR.'/home/myusername');
    include('Net/SSH2.php');
    $ssh = new Net_SSH2('123.45.6.78');
    if (!$ssh->login('user', 'password')) {
    exit('Login Failed');
    }else{
    echo "connected".'<br>';
    echo $ssh->exec('whoami').'<br>';
    echo $ssh->exec('hostname')).'<br>';
    }
    ?>

输出:
有联系的
(M4300-28G-PoE+)>
(M4300-28G-PoE+)>
问题:
我没有得到任何错误(无论是在网站的输出(见上文)或在/opt/lampp/logs/error_logs),因此:
问题:
为什么我没有得到任何输出(用户,主机名)?
有没有其他/更好的方法来检查我是否连接正确?

最佳答案

看起来你得到了输出。(M4300-28G-PoE+) >是您正在获取的输出,并且您正在获取您试图运行的两个命令的输出。
M4300-28G-PoE+是aNetGear switch。交换机因没有完整的SSH实现而臭名昭著。
我的猜测是:如果您想运行命令,就必须使用phpseclib的interactive commands

echo $ssh->read('username@username:~$');
$ssh->write("ls -la\n"); // note the "\n"
echo $ssh->read('username@username:~$');

关于php - php ssh连接phpseclib,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55594316/

10-11 22:52