underscore
underscore

Reputation: 6887

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('[email protected]:~$');
$ssh->write("ls -la\n");
echo $ssh->read('[email protected]:~$');

?>

How could i solve this issue ?

Upvotes: 1

Views: 13290

Answers (4)

Daniel Marschall
Daniel Marschall

Reputation: 3879

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();

Upvotes: 0

Adrian Sandu
Adrian Sandu

Reputation: 41

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.

Upvotes: 0

neubert
neubert

Reputation: 16792

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');

Upvotes: 4

Ryan Kempt
Ryan Kempt

Reputation: 4209

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');

Upvotes: 5

Related Questions