2015-07-23 3 views
-1

Нужна помощь. Я использую phpseclib 0.3.10, и я думаю, что не могу загрузить свой секретный ключ. Это мой код.не может загрузить ключ, используя phpseclib

   include('Net/SFTP.php'); 
       include('Crypt/RSA.php'); 

       $sftp = new Net_SFTP('mydomin.net'); 
       $key = new Crypt_RSA(); 
       $key->setPassword('anypass'); 
       $key->loadKey(file_get_contents(FCPATH.'path/to/id_rsa')); 
       if (!$sftp->login('username', $key) && !$sftp->login('username', 'password')) { 
        exit('Login Failed'); 
       } 

       print_r($sftp->nlist()); 

Он вернулся с ошибкой. Я могу подключиться к удаленному файлу в файле, используя этот закрытый ключ. Я уже ищу где-нибудь в google, но результат все тот же.

ответ

1
if (!$sftp->login('username', $key) && !$sftp->login('username', 'password')) { 
     exit('Login Failed'); 
    } 

Вы пытаетесь войти в систему с ключом RSA, а затем с паролем. Если вы сервер действительно использует многофакторную аутентификацию, вы, вероятно, просто хотите сделать !$sftp->login('username', $key), а не бит !$sftp->login('username', 'password').

Мое предположение: вы делаете только бит пароля с Net_SSH2, потому что ваш секретный ключ RSA защищен паролем.