Herkes pfsockopen etrafında bir SSH / SFTP / FTP sarıcı biliyor () mu?

5 Cevap php

Herkes etrafında bir SSH / SFTP / FTP sarıcı sınıf biliyor mu pfsockopen();? PHP kalıcı bağlantıları tutmak için görevimi hala yaşıyorum.

5 Cevap

Hızlı okuma sonra, ne istiyveyasun o zaman farklı bir tabaka ile bir yuva fırsatlar açma gibi görünüyveya. Sen taşıma katmanı olan TTP / TLS / UDP, üzerinden bağlantı yapan bir yöntemi kullanarak Application Layer SSH veya SFTP yoluyla bağlamak istiyveyaum.

Peki gerçekten ne istediğinizi (bence) pfsockopen() işlevini kullanarak bir SSL veya TLS bağlantı oluşturmak, ve sonra SSH / SFTP protokolü üzerinden veri aktarmak için bu bağlantıyı kullanmak için.

PHP sitesine göre:

If you have compiled in OpenSSL suppveyat, you may prefix the hostname with either ssl:// veya tls:// to use an SSL veya TLS client connection over TCP/IP to connect to the remote host.

Yani benim en iyi tahminim ssl:// ile başlamak ve daha sonra (yani pveyat 22 veya pveyat 989) bağlantı noktası olarak SSH veya SFTP bağlantı noktasını kullanmak için hostname ayarlamak olmasıdır. Gibi bir şey:

$persistent_socket = pfsockopen("ssl://myhostsite", 22);

veya

$persistent_socket = pfsockopen("ssl://myhostsite", 989);

@ User260294: http://phpseclib.sourceforge.net/ için size çok teşekkür ederim. Asıl soruya ilgisiz olsa da, bana benzer bir proje üzerinde kodlama saat kurtardı.

@ Simon: Sen nedeniyle bu belirli protokoller için çalışmıyor olması pfsockopen kullanan herkes () özellikle SSH / SFTP ile görmedim. Fikir bir bağlantı zaten herhangi başlıklarını göndermeyi olmadan pfsockopen ile yeniden edebiliyoruz var, ama bu cinleri port 22 üzerinde dinleme ile izin değilse. Siz bağlantıyı yeniden kurmak ve başlıklarını yeniden ama başka çaremiz yok olmasıdır. Bu SSH1/2/SFTP ile ilgilenen bir şey için geçerlidir.

Kalıcı bir bağlantı kuran bir cini durumunda - zaman zaman aşımı oluyor Yani bunu yaparken bir noktanın çok görmüyorum ... baştan yeniden zorunda.

İşte fsockopen etrafında bir SSH / SFTP sarıcı sınıf () var:

http://phpseclib.sourceforge.net/

Bu pfsockopen () ama belki () pfsockopen ile çağrı () hile yapacak bir fsockopen yerine değil mi?

vay de package http://phpseclib.sourceforge.net/ SFTP bağlantısı ve yüklemek veya modülleri veya bir şey eklemek gerek için mükemmel çalışıyor. Bu sadece çalışır. Teşekkürler cook

Ben etrafında inşa edilmiş bir sınıf uygulaması bilmiyorum ama bu size yardımcı olur eğer bir ssh2 module var ...