简体   繁体   中英

PHP Fatal error: Class 'Crypt_RSA' not found

I'm using php phpseclib .And i get following error when execute the script

 PHP Fatal error:  Class 'Crypt_RSA' not found
 in /home/xxxxx/public_html/index.php on line 5

PHP SCRIPT

<?php

include('library/php/Net/SSH2.php');

$key = new Crypt_RSA();
$key->setPassword('891600909v');
$key->loadKey(file_get_contents('891600909'));<--This is the pvt key file in home directory in my ubuntu PC-->

$ssh = new Net_SSH2('www.xxxxx.com');
if (!$ssh->login('xxxxx.com', $key)) {
    exit('Login Failed');
}

echo $ssh->read('xxxxx.com@xxxxx.com:~$');
$ssh->write("ls -la\n");
echo $ssh->read('xxxxx.com@xxxxx.com:~$');

?>

How could i solve this issue?

You need to also include the RSA.php file for the Crypt_RSA class.

Add this underneath your other include (assuming you have this file downloaded):

include('library/php/Crypt/RSA.php');

Adding to what Ryan Kempt said make sure your include_path is set appropriately. eg.

<?php
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

include('Net/SSH2.php');

You can either install phpseclib with pear OR get them from the site

http://phpseclib.sourceforge.net/pear.htm

Manually download each of the classes you wanted and include them in your main project.

In the current versions of phpseclib, the class Crypt_RSA is not existing anymore. You create it this way:

$rsa = \phpseclib3\Crypt\RSA::load("...");

or

$rsa = \phpseclib3\Crypt\RSA::createKey();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM