2011-06-07 14 views
8

dilek, bir rtfm hatası yapmıyorum.jsch ChannelExec ve ChannelShell arasındaki tam olarak ne fark eder?

Birisi bana çeki arasındaki detay farklılıklarını söyler.

+0

Sadece ilk cümle hakkında emin olmak için: [wiki'de manuel] (http://sourceforge.net/apps/mediawiki/jsch/index.php?title=Manual) ve [ Javadoc] (http://epaul.github.com/jsch-documentation/simple.javadoc/)? RFC'leri okumadıysanız, örnekler bu konuda net değildir. –

cevap

15

The shell and exec channels oldukça benzerdir - her ikisi de uzak kabuklu komutları çalıştırır (en azından, kavramsal olarak - sunucu bunları farklı şekilde işlemek için yapılandırılabilir). RFC 4254, bunları section "Interactive Sessions"'da gruplandırır ve her ikisi de (alt sistemin yanı sıra aşağıya bakın) SSH protokolünde "oturum" kanal türünü kullanır.

  • ChannelShell, giriş akımı bu komutlara komutları ve giriş hem de sağlar:

    önemli bir fark vardır. Yerel bilgisayarınızda interaktif bir kabuk kullanarak bu gibidir. ChannelExec için

  • , komutlar connect() önce setCommand() ile verilir ve giriş akışı girişi olarak bu komutlara gönderilecektir: (interaktif kullanımı. Ve normalde bunun için sadece kullanılır). (Çoğu zaman, sadece tek bir komut olacak, ancak normal kabuk ayırıcılar &, &&, |, ||, ;, satır ve bileşik komutlarını kullanarak birden olanları sağlayabilir.) bir shell script yürütme gibi budur senin yerel bilgisayar (Komutların kendisi birinin interaktif kabuk ise Tabii ki, bu bir ChannelShell gibi davranacaktır.)

  • ssh sunucu bir alt sistemi yürüten üçüncü benzer bir, ChannelSubsystem vardır - burada sunucunun yapılandırma uzak kullanıcının kabuğuna değil, ne yapacağına karar verir. (En sık kullanılan alt sistem sftp, ancak bu JSch protokolünü anlayan bir uzman kanalı sağlar.)

+0

teşekkürler. Birkaç gün önce jsch'i kullanıyorum. Açıkçası, öğrenecek çok şeyim var. RFC'leri okuyacağım. Yardımın için teşekkürler! –

+2

RFC'leri okumadan önce, [JSch kılavuzu] 'nı (http://sourceforge.net/apps/mediawiki/jsch/index.php?title=Manual) okumaya çalışın; daha kısadır ve daha JSch özeldir. Ayrıca, sadece genel bakış [RFC 5251] (http://tools.ietf.org/html/rfc4251), protokolün teknik detaylarına değil, bence. –

0

hala exec kanal ve kabuk kanal arasındaki bir daha önemli bir fark vardır: Kabuk kanalı kuracak Örneğin, ortam ortamı, kabuk ortamı, yürütme kanalı olmaz.

İlgili konular