Beenden Sie die Telnet-Verbindung ordnungsgemäß aus dem Sitzungsmodus selbst, ohne zur Telnet-Eingabeaufforderung zu wechseln

16

Eine normale Telnet-Verbindung sieht folgendermaßen aus:

telnet localhost 22
127.0.0.1 wird versucht ...
Verbunden mit localhost.
Escape-Zeichen ist '^]'.
SSH-2.0-OpenSSH_4.2
^]
telnet> schließen
Verbindung geschlossen.

Ich möchte es aus der Telnet-Sitzung selbst schließen, ohne durch Drücken von zur Telnet-Eingabeaufforderung zu gelangen. Meine Anforderung ist, dass, wenn ich ein Steuerzeichen aus der Telnet-Sitzung selbst wie STRG + A drücke, es aus der Sitzung kommt und sie automatisch schließt. etwas wie das:

$ telnet localhost 22
127.0.0.1 wird versucht ...
Verbunden mit localhost.
Escape-Zeichen ist '^]'.
SSH-2.0-OpenSSH_4.2
^ A
Verbindung geschlossen.
$

Ich habe alle auf der Manpage angegebenen Optionen ausprobiert und versucht, einige $ HOME / .telnetrc-Dateitests durchzuführen, konnte dies jedoch nicht erreichen, da telnetrc alle darin geschriebenen Befehle mit dem angegebenen Host ausführt, wenn ein Telnet an diesen Host gesendet wird erledigt.

Kann mir jemand dabei helfen, wie es erreicht werden kann.

Kumar Alok
quelle
es ist so complicated..why Sie „exit“ nicht ??? seine ... mehr einfach ..
Für die Verwendung von Exit muss ich auch zuerst zu Telnet-Eingabeaufforderung kommen. richtig. während meine Anforderung ist, die Verbindung zu schließen, bevor sie den Sitzungsmodus verlässt, ohne zur Telnet-Eingabeaufforderung zu gelangen (dh, um zur Telnet-Eingabeaufforderung zu gelangen, muss ich zuerst ein Escape-Zeichen senden und kann dann schließen oder beenden).
Kumar Alok
@ Paul: Ich verstehe dich nicht. Kannst du mir bitte sagen, wo ich die Lösung finden kann?
Kumar Alok
3
Kannst du erklären, warum man das will? Telnet ist nur ein Client-Programm, mit dem eine Verbindung zu einem beliebigen Dienst auf einem Computer hergestellt werden kann. Wenn Sie Port 23 verwenden, stellen Sie eine Verbindung zum Telnet- Dienst her und können Ihre Anmeldung mit beenden. exitDies ist jedoch ein Shell-Befehl, kein Telnet-Befehl. Sie müssen zur Telnet-Eingabeaufforderung gehen, um eine Verbindung zu beenden, wenn der Dienst, mit dem Sie verbunden sind, keinen Befehl zum Beenden der Verbindung anbietet. Wenn Sie sich über ssh bei einem Remote-Computer anmelden möchten, verwenden Sie den sshBefehl nicht telnet(es sei denn, Sie möchten eine manuelle Verschlüsselung durchführen).
Benjamin Bannier

Antworten:

33

Nein, der telnetClient (ich vermute, Sie fragen nach Linux) unterstützt nur ein Escape-Zeichen Ctrl]( ^]).

Wenn Sie nur telnetbeliebige TCP-Verbindungen herstellen möchten, sollten Sie die Verwendung von netcatoder in Betracht ziehen socat. Diese können durch einfaches Drücken von unterbrochen werden CtrlC.

user1686
quelle
9
Für Follower halten Sie die Strg-Taste gedrückt, drücken dann die Taste "Rechte Klammer" und drücken dann die Eingabetaste. Es antwortet mit einer Eingabeaufforderung wie telnet>und Sie können quiteingeben und die Eingabetaste drücken, um die Sitzung zu beenden. Puh!
Rogerdpack
@ Rogerdpack Danke. Auf diese Weise können Sie OSX beenden.
Chhantyal
Was ist, wenn ich ein Gebietsschema verwende, in dem das Tastaturlayout die rechte Klammer unter <einer anderen Taste> hat? Strg-Alt- <die andere Taste> funktioniert nicht.
User628418
Dann
ändern
-4

Was ist mit der guten alten CTRL+ D, auch bekannt als EOF?

kdo
quelle
1
Es würde nur funktionieren, wenn es auf der Serverseite der Sitzung gehandhabt wird. Was im Allgemeinen nicht zutrifft (und auch nicht in der erwähnten 22-Port-SSH-Verbindung zutrifft).
Andrey Regentov