phpseclib всегда выдает ошибку входа в систему

Я не уверен, что я делаю что-то не так, или сервер просто не поддерживает phpseclib или что-то еще, но я пытаюсь подключиться к FTP-серверу, который будет принимать только безопасные FTP-соединения и только с определенных IP-адресов. Теперь я знаю, что FTP-сервер принимает соединение с моим VPS-сервером, поскольку я удаленно подключился к своему VPS через SSH и вручную успешно подключился к FTP-серверу из командной строки.

Однако, когда я пытаюсь выполнить следующее с помощью phpseclib, он всегда попадает в точку выхода.

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
include 'Net/SFTP.php';

$sftp = new NET_SFTP('***');
if(!$sftp->login('***', '***')) {
    $sftp->getSFTPErrors();
    exit('Login Failed'); // <-- Code always gets to this point
}

echo $sftp->pwd();

Я не знаю, как даже начать устранение этой проблемы. Я задал вопрос на их форуме, а также попробуй получить помощь. Я попытался включить ведение журнала с помощью define('NET_SFTP_LOGGING', NET_SFTP_LOG_COMPLEX);, а затем вывести echo $sftp->getSFTPLog(); прямо над выходом, но это ничего не выводит.

На странице у меня только Login Failed, так что ошибок от $sftp->getSFTPErrors(); я не получаю.

Я новичок в использовании безопасного FTP-соединения в PHP и не знаю, что делаю неправильно. Может кто-нибудь помочь мне отладить проблему?


person Styphon    schedule 13.08.2013    source источник
comment
Похоже, вы получили здесь ответ ?: frostjedi.com/phpbb3 /viewtopic.php?f=46&t=168858   -  person neubert    schedule 13.08.2013
comment
Вы нашли, в чем заключалась последняя проблема? Так как я получаю ту же ошибку.   -  person Masnad Nihit    schedule 15.01.2018
comment
@MasnadNihit на сервере отсутствовал необходимый модуль.   -  person Styphon    schedule 15.01.2018


Ответы (1)


То, как вы его используете, ясно, что вы не видите никаких ошибок. $sftp->getLastSFTPError() возвращает строку, а $sftp->getSFTPErrors() возвращает массив, и это то, что вам нужно вывести эхом, чтобы увидеть, что не так.

Пытаться

print_r($sftp->getSFTPErrors());
person ciruvan    schedule 13.08.2013
comment
эй, мне не удается войти в систему и print_r ($ sftp- ›getLastSFTPError ()); ничего не распечатывает, а print_r ($ sftp- ›getSFTPErrors ()); просто выводит пустой массив. есть идеи о том, что могло вызвать сбой без ошибок? Благодарность! - person Bahman.A; 31.10.2019