【问题标题】:Class 'Net_SSH2' not found in... when using phpseclib使用 phpseclib 时在...中找不到类“Net_SSH2”
【发布时间】:2023-04-04 07:55:01
【问题描述】:

我正在尝试使用 phpseclib 在我的服务器上运行一些 ssh 命令。尝试以下操作,我得到 Class 'Net_SSH2' not found in.... 这似乎表明 phpseclib 未正确加载,但回显显示包含正在工作。

我在这里做错了什么?

我的php

<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

$thepath = $_SERVER['DOCUMENT_ROOT']. '/inc/phpseclib/Net/SSH2.php';
echo '<strong>Full include path:</strong> '. $thepath;
include ($thepath); 


$included_files = get_included_files();

foreach ($included_files as $filename) {
     echo "<br><strong>Included file:</strong>$filename";
}


$ssh = new Net_SSH2('xx.xx.x.xx.x'); // server's ip address
if (!$ssh->login('username', 'password')) { // filled in correctly 
    exit('Login Failed');
}

echo $ssh->exec('pwd');
echo $ssh->exec('ls -la');
?>
Done.

输出

Full include path: /var/chroot/home/content/08/555555555/html/inc/phpseclib/Net/SSH2.php
Included file:/home/content/08/555555555/html/TeamBoard/deploy.php
Included file:/home/content/08/555555555/html/inc/phpseclib/Net/SSH2.php
Fatal error: Class 'Net_SSH2' not found in /home/content/08/555555555/html/TeamBoard/deploy.php on line 25

【问题讨论】:

    标签: php ssh phpseclib


    【解决方案1】:

    在 github.com 上有两个分支(除了 master 分支)- 1.0 和 2.0。 2.0 是命名空间的,所以要调用你需要做 \phpseclib\Net\SSH2。

    如果您从 phpseclib.sourceforge.net 下载了 zip 文件,那么您正在运行 1.0 分支。如果这就是您正在运行的内容,则需要更新包含路径。例如。

    set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
    

    如果您正在运行 2.0 分支(或 master 分支),则需要使用自动加载器。示例:

    <?php
    // https://raw.githubusercontent.com/composer/composer/master/src/Composer/Autoload/ClassLoader.php
    
    include('autoloader.php');
    
    $loader = new \Composer\Autoload\ClassLoader();
    $loader->addPsr4('phpseclib\\', __DIR__.'/phpseclib');
    $loader->register();
    
    use \phpseclib\Crypt\RSA;
    
    $rsa = new RSA();
    

    【讨论】:

    猜你喜欢
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 2015-09-17
    • 2016-04-30
    • 2020-06-22
    • 1970-01-01
    相关资源
    最近更新 更多