PHP'nin exec () fonksiyonu aracılığıyla SSH bağlanılıyor.

3 Cevap php

Şu anda PHP'nin kabuk fonksiyonları kullanarak SSH ile başka bir sunucuya bağlanmak için nasıl anlamaya çalışıyorum. Ben özel bir komut satırı programı PHP veri geçmek zorunda bir site var, o çıktı dönmek. Ben kullanıyordum eski sunucuda, bu exec () fonksiyonu sayesinde mümkün oldu:

$cmd = '/path/to/custom/program "arg1", "arg2", "arg3"';
exec($cms, $output);

$ Çıkışı, elbette, o zaman benim program döndürülen veri tutabilir.

Ben ev sahibi bana özel bir program çalıştırmak için izin vermez bir konumda şimdi duyuyorum. PHP'nin kabuk işlevleri, ancak, hala mevcuttur. Konak Ben, farklı bir sunucuya SSH Ben çalıştırmak için gereken komutları çalıştırın ve sonra çıktı dönmek için PHP kurmak önerdi. Bu şeyler yapmanın inanılmaz geriye bir yol gibi görünüyor, ama ne biliyor musunuz?

Benim belirli bir soru ben exec () komutu için giriş bilgilerinizi geçen hakkında gitmek nasıl ilgilidir. Ben elle herhangi bir SSH sunucusuna bağlanmak Örneğin, ben koymak:

ssh myserver.com -l myusername

Ve sonra bakın:

myusername@myserver.com's password:

Ben exec komutu () olarak "ssh myserver.com-l myusername" geçmek olsaydı, nasıl o zaman o şifreyi verecek? Bundan sonra, nasıl o yüzden benim program için komutunu çalıştırabilirsiniz düzgün doğrulanmış ve bağlı olduğumu biliyorum ki?

Oh, ve aynı zamanda, ben do not PHP ssh2 işlevlerine erişmek zorunda, ne de ben bu uzantıyı yüklemek mümkün olacaktır.

3 Cevap

Eğer PHP kod yeni süreci ile çift yönlü iletişim gerekir - proc_open durum, (...) varlık ssh çalıştırmak için kullanabileceğiniz tek php işlevi olduğunu.

Bundan sonra - onun sadece kod yazma meselesi istemleri için beklemek ve onlara yanıt verir.

Ancak phpclasses adresinde yayınlanan PHP ile yazılmış ssh uygulama var - Ne kadar güvenilir / verimli / hızlı / uyumlu hiçbir fikrim yok olsa. Ben proc_open () yaklaşımı ve olası çok daha mı az çaba olmayacağını sanıyorum.

C.

Eğer şifre sorunu aşmanın tuşlarını kullanabilirsiniz.

http://pkeck.myweb.uga.edu/ssh/

) Çalıştı, ancak PHP temel işlevleri passthru () veya sistem (düşünün yapmadım.

Onlar exec benzer ().