SFTP из PHP

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

Мне было интересно, возможно ли обеспечить поддержку SFTP-серверов, но после некоторых быстрых поисков в Google кажется, что это не так просто.

Итак, вопрос в том, что было бы лучшим способом использовать SFTP из PHP? Существует ли класс, который также может поддерживать FTP, а также SFTP, чтобы использовать те же функции для обоих?

Заранее благодарю за ваше время, тител

Да, вы можете сделать это с помощью cURL . Для переключения с FTP на SFTP все, что вам нужно сделать, это изменить форму протокола CURLPROTO_FTP на CURLPROTO_SFTP .

cURL поддерживает следующие протоколы: HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TELNET, LDAP, LDAPS, DICT, FILE, TFTP.

КСТАТИ. SFTP не следует путать с FTPS. SFTP – протокол передачи файлов SSH, а FTPS – FTP через SSL.

если у вас нет cURL (мой хост не работает), вы можете использовать phpseclib:

http://phpseclib.sourceforge.net/documentation/net.html#net_sftp

В случае, если кто-то попадает на эту страницу.

Вы также можете использовать PHP Bindings для LIBSSH2 с PHP. Он должен быть надлежащим образом установлен в системе.

В Ubuntu 10.04 и Debian Lenny, конечно, со всеми зависимостями

 apt-get install libssh2-php 

Проблема с рекомендацией Игоря состоит в том, что он, среди прочего, делает гораздо менее портативный код (libssh2 не установлен на очень многих хостах), он имеет гораздо более интуитивно понятный API на основе ООП и аутентификацию RSA на самом деле имеет смысл (требуется libssh2 вы храните открытый ключ и частный ключ отдельно в файловой системе, а тот факт, что они должны быть предоставлены отдельно, глупо, поскольку большинство форматов закрытого ключа включают в себя открытый ключ внутри них).

phpseclib также быстрее:

http://kevin.vanzonneveld.net/techblog/article/make_ssh_connections_with_php/#comment_3759