Закриття з'єднання telnet витончено із самого сеансу, не переходячи до підказки telnet


16

звичайне з'єднання telnet таке:

telnet localhost 22
Пробуємо 127.0.0.1 ...
Підключено до localhost.
Символ втечі - '^]'.
SSH-2.0-OpenSSH_4.2
^]
telnet> закрити
З'єднання закрите.

Я хочу закрити його з самого сеансу telnet, не надходячи на підказку telnet, натискаючи. Моя вимога полягає в тому, що якщо я натискаю якийсь символ управління з сеансу telnet, як CTRL + A, то він вийде з сеансу і закриється автоматично. щось на зразок цього:

$ telnet localhost 22
Пробуємо 127.0.0.1 ...
Підключено до localhost.
Символ втечі - '^]'.
SSH-2.0-OpenSSH_4.2
^ А
З'єднання закрите.
$

Я спробував усі параметри, наведені на сторінці man, і спробував зробити кілька тестів файлів $ HOME / .telnetrc, але не зміг цього досягти, оскільки telnetrc виконує всі написані в ньому команди з даним хостом щоразу, коли telnet до цього хоста буде зроблено.

Хтось може мені допомогти в цьому, як, як це можна досягти.


це так складно .. чому ви не використовуєте "вихід" ??? його ... простіше ..

для використання виходу також мені потрібно спершу зайти в telnet. правильно. в той час як моя вимога полягає в тому, щоб закрити з'єднання pr вийти з режиму сеансу, не звертаючись до telnet-підказок (тобто для приходу в telnet-підказку мені потрібно спочатку надіслати символ втечі, а потім я можу зробити закрити або вийти).
Кумар Алок

@ Пол: Я не розумію тебе. Скажіть, будь ласка, де я можу знайти рішення.
Кумар Алок

3
Чи можете ви пояснити, чому хтось цього хотів би? Telnet - це лише клієнтська програма для підключення до будь-якої довільної служби на деякій машині. Якщо ви використовуєте порт 23, ви підключаєтесь до служби telnet і можете припинити свій логін exit, але це команда оболонки, а не команда telnet. Вам потрібно перейти до telnet-повідомлення, щоб припинити з'єднання, якщо служба, до якої ви підключились, не пропонує команду припинити з'єднання. Якщо ви хочете увійти на віддалену машину через ssh, використовуйте sshкоманду, а не telnet(якщо ви не хочете робити шифрування вручну).
Бенджамін Баньє

Відповіді:


33

Ні, telnetклієнт (я думаю, ви запитуєте про Linux) підтримує лише один символ втечі, Ctrl]( ^]).

Якщо ви просто використовуєте telnetдля встановлення довільних TCP-з'єднань, розгляньте можливість використання netcatабо socatзамість цього; їх можна перервати простим натисканням CtrlC.


9
Для підписників ви утримуєте клавішу ctrl, натискаєте клавішу "права дужка", а потім натискаєте клавішу Enter. Він відповість як-небудь підказка, telnet>і ви можете ввести quitта натиснути Enter, щоб вийти з сеансу. Фу!
rogerdpack

@rogerdpack Дякую Таким чином вийти на OSX.
chhantyal

Що робити, якщо я використовую локаль, у якому розкладка клавіатури має правильну дужку під alt- <деяка інша клавіша>? ctrl-alt- <інша клавіша> не працює.
користувач628418

Потім ви перемикаєте розкладку клавіатури або використовуєте екранну клавіатуру ...
grawity

-4

А як щодо старого доброго CTRL+ D, він же EOF?


1
він буде працювати тільки в тому випадку, якщо він обробляється на стороні сервера сеансу. Що взагалі не відповідає дійсності (а також не відповідає дійсності згаданого 22-портового з'єднання ssh).
Андрій Регентов
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.