was sind die genauen Unterschiede zwischen jsch ChannelExec und ChannelShell?

8

Ich wünschte, ich mache keinen RTFM-Fehler.

Kann mir jemand die Detailunterschiede zwischen den beiden sagen?

    
Han Zheng 07.06.2011, 12:40
quelle

2 Antworten

15

Die Shell- und Exec-Kanäle sind ziemlich ähnlich - beide führen Befehle mit aus die Remote-Shell (zumindest konzeptionell - der Server könnte natürlich so konfiguriert sein, dass er sie anders behandelt). RFC 4254 gruppiert sie im Abschnitt "Interaktive Sitzungen" , und sie beide (sowie das Subsystem, siehe unten) verwenden Sie den Kanaltyp "Sitzung" im SSH-Protokoll.

Es gibt einen wichtigen Unterschied:

  • Für ChannelShell , liefert der Eingabestrom sowohl die Befehle als auch die Eingabe für diese Befehle. Dies ist wie Verwenden einer interaktiven Shell auf Ihrem lokalen Computer. (Und es wird normalerweise nur dafür verwendet: interaktive Nutzung.)

  • Für ChannelExec werden die Befehle mit setCommand () vor connect() angegeben und der Eingabestrom wird als Eingabe an diese Befehle gesendet. (In den meisten Fällen haben Sie nur einen Befehl, aber Sie können mehrere mit den normalen Shell-Separatoren & , && , | , || , ; , Newline und Compound-Befehle angeben.) This ist wie Ausführen eines Shell-Skripts auf Ihrem lokalen Computer. (Wenn einer der Befehle selbst eine interaktive Shell ist, verhält sich das natürlich wie ein ChannelShell .)

  • Es gibt eine dritte ähnliche, ChannelSubsystem , die ein Subsystem des SSH-Servers ausführt - hier entscheidet die Konfiguration des Servers, was zu tun ist, nicht die Shell des Remote-Benutzers. (Das am häufigsten verwendete Subsystem ist sftp , aber dafür stellt JSch einen speziellen Kanal zur Verfügung, der das Protokoll versteht.)

Paŭlo Ebermann 07.06.2011, 13:56
quelle
0

Es gibt noch einen weiteren wichtigen Unterschied zwischen dem exec-Kanal und dem Shell-Kanal: Der Shell-Kanal wird die Shell-Umgebung einrichten, zum Beispiel die Umgebungsvariablen, während der exec-Kanal dies nicht tut.

    
Jamie 20.09.2017 13:09
quelle

Tags und Links