Reputation: 6887
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
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
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
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
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