Консоль, Терминал, Telnet и SSH – что это и зачем нужно?

Почему?

😪Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.

Внешняя среда с разделением времени

TELNET был разработан в эпоху, когда большие операционные системы, такие как UNIX, работали с внешней средой по принципу разделения времени. Согласно этому принципу, большой компьютер поддерживал множество пользователей, предоставляя им часть общего времени.

Взаимодействие между пользователем и компьютером осуществляется с помощью терминала, который обычно состоит из комбинации клавиатуры, монитора и мышки. Даже микрокомпьютер может моделировать терминал с помощью терминального эмулятора.

В среде с разделением времени вся обработка информации проводится в центральном компьютере. Когда пользователь печатает символ на клавиатуре, символ обычно посылается компьютеру и отражается на мониторе. Разделение по времени создается средой, в которой для каждого пользователя создается иллюзия специализированного компьютера. Пользователь выполняет программу доступа к системным ресурсам, переключается от одной программы к другой и так далее.

Вставка документа

TELNET использует только одно TCP-соединение. Сервер задействует закрепленный порт 23, а клиент — кратковременный порт. Такое же соединение применяется для посылки данных и управляющих символов. TELNET достигает этого, вставляя управляющие символы в поток данных.

Однако чтобы отличить данные от управляющих символов, каждая последовательность управляющих символов предваряется специальным управляющим символом, называемым “интерпретировать как управляющий”. Например, предположим, пользователь хочет послать последовательность символов данных к удаленному серверу для отображения файла ( file1 ).

Однако имя файла неправильно набрано на клавиатуре ( filea вместо file1 ), и пользователь использует клавишу обратного перевода, чтобы скорректировать эту ситуацию.

Но неправильное выполнение TELNET-пользователь не может редактировать на месте, редактирование должно быть сделано на удаленном сервере. Символ обратного перевода переводится в два дистанционных символа ( IAC EC ), которые внедряются в данные и посылаются к удаленному серверу. Что посылает сервер, показано на рис. 12.6.

Задачи и упражнения

  1. Покажите последовательность бит, посылаемую от клиента TELNET при двоичной передаче 1111 0011 0011 1100 1111 1111.
  2. Если TELNET использует символьный режим, сколько символов послано назад и вперед между клиентом и сервером для того, чтобы скопировать один в другой файл, называемый файл2 в UNIX?
  3. Какое минимальное число бит посылает TCP для завершения задачи в упражнении 2?
  4. Какое минимальное число бит посылается к уровню звена данных (использующему Ethernet) для завершения задачи в упражнении 2?
  5. Каково отношение полезных бит к общему числу бит в упражнении 4?
  6. Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из режима по умолчанию в символьный режим.
  7. Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из символьного режима в режим по умолчанию.
  8. Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из режима по умолчанию в режим строки.
  9. Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из символьного режима в режим строки.
  10. Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из режима по умолчанию в символьный режим.
  11. Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из режима строки в режим по умолчанию.
  12. Интерпретируйте следующие последовательности символов (в шестнадцатеричной системе), полученные TELNET клиентом или сервером:

Запуск опций

Некоторые опции могут быть запущены только сервером, некоторые — только клиентом, а некоторые — обеими сторонами.

Сторона может запустить опцию, если она имеет право для этого. Предложение может быть принято и не принято другой стороной. Предлагаемая сторона посылает команду WILL, которая означает “Я запущу опцию?”. Другая сторона может в ответ послать команду DO, которая означает “Пожалуйста, запускай” (рис. 12.7. ). Ответом будет команда WILL, которая означает “Запускаю”.

В другом варианте вторая сторона может передать команду WONT, которая означает “Не запущу опцию” (рис. 12.8 ).

Заценили ролик? продолжаем.

На первых порах ими стали телетайпы. Это такие печатные машинки, которые соединяются по электрическому каналу для отправки и получения текстовых сообщений на простом листе бумаги. Да-да, раньше этим хакерским черным экраном был простой лист с командами! Это было дико неудобно и медленно, но идея ввода и вывода информации построчно затем легла в основу будущих интерфейсов.

Позднее, посредством электронно-лучевой трубки, строку для ввода команд вывели на экран и плюс-минус в таком виде она добралась до наших дней. Таким образом, мы теперь вбиваем команды не на печатной машинке, а на клавиатуре и видим эти команды не на листе бумаги, а на мега тонком UltraHD мониторе, но модель взаимодействия осталась такой же как и 60 лет назад.

Вообще совокупность устройств для взаимодействия с человека и компьютера называют консолью. Это может быть клавиатура, мышь, монитор, дисплей, микрофон, джойстик, но с одной оговорочкой. Всё это должно быть подключено непосредственно к компу и ты должен находиться прямо перед ним.

:/>  Команда RUNAS: запуск приложений от имени другого пользователя Windows | вебисторий

А вот если ты сидишь в удобном отремонтированном кабинете с кондиционером и через промежуточное устройство подключаешься к серверу, который стоит в подвале здания, то это уже терминал. Улавливаешь суть? Консоль – это когда ты сидишь прямо перед устройством и юзаешь перефирию подключенную прямо к нему. Терминал – это когда ты через что-то ещё (зачастую удаленно) подключаешься к консоли взаимодействуешь с ней.

Супер, разобрались. Ну и что, можно взаимодействовать с компами только если за ними сидеть или через какой-то промежуточный девайс? Конечно нет!

Для этого был придуман протокол Telnet (телетайп нетворк).

С помощью него можно удаленно по сети подключиться к сетевому устройству и заниматься его администрированием. По умолчанию, телнет использует TCP порт 23.

При подключении по телнет ты с помощью текстовых команд можешь говорить удаленному серверу что делать – запускать программы, создавать и удалять файлы и директории, управлять сетевыми параметрами, гонять гусей короче вообще всё на что хватит прав, а самое главное ты при этом можешь находиться на другом конце планеты.

Знак esc

Символ, напечатанный пользователем, обычно посылают серверу. Однако иногда пользователь хочет иметь символы, интерпретируемые клиентом вместо сервера. В этом случае пользователь может использовать символ escape, обычно Ctrl ] (показанный как ^).

Это — сигнал клиенту, указывающий, что команда — не для удаленного сервера, а для клиента. Рисунок 12.15. сравнивает прерывание прикладной программы удаленной стороны с прерыванием процесса клиента на местной стороне, с использованием символа ESC.

Команды от клиента на сервер

Клиент может послать команды серверу. Чтобы отличать команду от данных, команды должны начинаться с двух специальных символов — с двух FF16. Следующие 2 байта определяют тип команды.

Пока только одна команда была определена. Это — ss (screen size — размер экрана), команда, используемая для объявления размера окна экрана. Клиент посылает два символа из всех единиц ( FF16 ), следующие за ss и

Концепция

TELNET основан на концепциях, которые обсуждаются ниже.

Опции

TELNET позволяет клиенту и серверу опции ведения переговоров перед и в течение использования услуги. Опция дополнительных свойств возможна для пользователя с более сложным терминалом. Пользователь с простым терминалом может использовать минимальные свойства. Таблица 12.2. показывает некоторые употребительные опции.

Опции переговоров

Чтобы использовать любые опции, упомянутые в предыдущем разделе, сначала требуются переговоры между клиентом и сервером. Для этой цели применяются четыре управляющих символа; они показаны в таблице 12.3.

Отключение опции

Сторона может предложить отключить опцию. Другая сторона может принять предложение; может не принять предложение. Предлагающая сторона посылает команду WONT, которая означает “Я больше не хочу использовать эту опцию”. Ответ может быть команда DONT, которая означает “Больше не используйте ее”. Рис. 12.9 показывает предложение для блокировки опции.

Также запрашивающая сторона посылает команду DONT, которая означает “Я больше не буду использовать эту опцию”. Рис. 12.10 показывает запрос на блокировку опции.

Переговоры по подопциям

Некоторые опции требуют дополнительной информации, например, для того чтобы определить тип или скорость терминала, переговоры включают строку или номер для определения терминала. В этом случае нужны два символа, указанные в Таблица 12.4., для проведения переговоров по субопциям.

Например, тип терминала – это настройка клиентом? показанная на рис. 12.12.

Передача сигналов вне полосы

Чтобы сделать символы управления эффективными, в специальных ситуациях TELNET использует передачу сигналов вне полосы. При такой передаче символам управления предшествует IAC, и удаленному процессу посылают сигнал неисправности.

Вообразим ситуацию, в которой прикладная программа, функционирующая на стороне сервера, зациклилась и не принимает больше входные данные. Пользователь хочет прервать прикладную программу, но программа не читает данные от буфера. TCP на стороне сервера нашел, что буфер полон, и послал сегмент, определяющий, что размер окна клиента должен быть равен нулю.

Другими словами, TCP на стороне сервера объявляет, что больше не примет регулярный трафик. Чтобы исправить такую ситуацию, TCP нужно послать от клиента серверу срочный сегмент. Срочный сегмент отменяет регулярный механизм управления потоком.

Когда процесс TELNET (клиент или сервер) хочет послать вне полосы последовательность символов к другому процессу (клиент или сервер), он включает последовательность в поток данных и вставляет специальный символ, названный DM (DataMarker – знак данных).

Однако чтобы вызвать другую сторону для обработки последовательности неисправностей, он создает сегмент TCP с установкой срочного бита, срочность указывается символом DM. Когда TCP получает сегмент, он читает данные и удаляет любые данные, предшествующие символу управления (например, IAC и IP.).

:/>  Настройка камеры в Windows 10

Когда он достигает символа DM, остающиеся данные обработаются обычным образом. Другими словами, символ DM используется как символ синхронизации, который переключает TCP от срочного режима получения к нормальному режиму и восстанавливает синхронизацию на двух концах (рис. 12.14 ).

Этим способом символ управления (IP) доставляется вне полосы к операционной системе, которая использует соответствующую функцию, чтобы прервать функционирующую прикладную программу.

Пользовательский интерфейс

Обычно пользователь не использует команды TELNET так, как это определено выше. Как правило, операционная система (например, UNIX) определяет интерфейс с командами, дружественными пользователю.

Пример 1

В этом примере мы используем режим по умолчанию, чтобы показать его концепцию и недостатки (несмотря на то, что он сегодня устарел). Клиент и север ведут переговоры о типе терминала и скорости терминала, и затем сервер проверяет пароль пользователя (рис. 12.16 ).

Примеры

В этом разделе мы показываем два примера TELNET-взаимодействия между клиентом и сервером.

Режим работы

Большинство реализаций TELNET работает в одном из трех режимов: заданный по умолчанию режим, символьный режим и режим линии.

Режим строки

Новый режим был предложен, чтобы компенсировать недостатки режима по умолчанию и символьного режима. В этом режиме, названном режимом строки, редактирование строки (повторение, стирание символа, стирание строки и так далее) делается клиентом. Затем клиент посылает целую строку серверу.

Хотя режим строки напоминает режим, заданный по умолчанию, это только внешнее сходство. Режим, заданный по умолчанию, работает в полудуплексном режиме; режим строки является дуплексным, с клиентом, посылающим одну строку за другой, без потребности во вмешательстве символа GA (иди дальше — go ahead) от сервера.

Режим, заданный по умолчанию

Режим, заданный по умолчанию, используется, когда с помощью опции переговоров не запрошены никакие другие режимы. В этом режиме возвращение символов делается клиентом. Пользователь печатает символ, а клиент отображает символ на экране (или принтере), но не посылает его, пока не закончится вся строка.

После посылки полной строки на сервер клиент ждет команду GA (go ahead) от сервера, перед принятием новой строки — от пользователя. Эта работа — полудуплексная. Полудуплексная работа не эффективна, когда связь в самом TCP является дуплексной, так что этот режим устаревает.

Сетевой виртуальный терминал (nvt)

Механизм для доступа удаленного компьютера должен быть комплексным с учетом специфики каждой операционной системы. Например, для некоторых операционных систем знак конца — это Ctrl z, в то время как в других операционных системах — это Ctrl d.

Если мы хотим иметь доступ к любому удаленному компьютеру в мире, мы должны сначала знать специфику терминального эмулятора, используемую этим компьютером. TELNET решает эти проблемы определением универсального интерфейса, называемого NVT (NetworkVirtual Terminal — виртуальный сетевой терминал).

Для каждого интерфейса TELNET переводит символы (данные или команды), которые получает от местного терминала, в NVT-форму и доставляет их в сеть. С другой стороны, серверTELNET переводит команды из формы NVT в форму, доступную удаленному компьютеру. Все иллюстрации этой концепции смотрите на рисунке 12.3.

Символы данных

NVT набор символов обычно использует набор, называемый NVT ASCII. Это 8-битовый набор символов, в котором семь младших бит такие же, как в US ASCII, имеющие старший бит — 0 (рис. 12.4. ).

Символы дистанционного управления

Чтобы послать символы управления между компьютером (от клиента к серверу и наоборот), NVT использует 8-битовый набор символов, в которых высший разряд установлен в 1 (рис. 12.5. ).

Таблица 12.1. содержит список некоторых символов дистанционного управления и их значения.

Символьный режим

В символьном режиме каждый напечатанный клиентом символ посылается серверу. Сервер обычно обрабатывает символ, чтобы отобразить на экране клиента. В этом режиме отражение символа может быть отсрочено, если передача происходит длительное время (такое, как при спутниковой связи). Оно также создает перегрузку (трафика) для сети, потому что для каждого символа данных нужно послать три сегмента TCP:

  1. пользователь вводит символ, который посылает серверу;
  2. сервер признает полученный символ и повторяет символ назад (в одном сегменте);
  3. клиент подтверждает получение отображенного на экране символа.

Симметрия

Одно из интересных свойств TELNET — симметричность опции переговоров, в которой клиенту и серверу даны равные возможности. Это означает, что при начальной концепции протокол предполагает, что обе стороны используют простую реализацию TELNET без возможности каких-либо опций.

Если одна сторона хочет иметь возможность применить опцию, она может предложить или запросить. Другая сторона имеет право одобрить предложение или отклонить запрос, если эта сторона не способна или не хочет использовать опцию. Это делает возможным расширение TELNET.

Клиент или сервер может установить более сложную версию TELNET с большим количеством опций. Когда он соединяется с другой стороной, он может предложить или запросить эти новые опции. Если другая сторона поддерживает эти опции, они могут стать возможными, в противном случае они отклоняются.

:/>  Как установить время и дату на компьютере: 2 способа

Управляющий сервер

Некоторые символы управления могут применяться для управления удаленным сервером. Когда прикладная программа выполняется на местном компьютере, используются специальные символы для прерывания (остановки) программы (например, Ctrl c ) или стирания последнего напечатанного символа (например, кнопка “удалить” или кнопка “возвращение на одну позицию назад”) и так далее.

Однако когда программа выполняется на удаленном компьютере, эти управляющие символы должны быть посланы в удаленную машину. Пользователь еще печатает те же самые последовательности, но они изменяются на специальные символы и посылаются к серверу.

Рассмотрим эти символы более детально.

  • IP (прерывание процесса). Когда программа выполняется в местном компьютере, пользователь может прервать (остановить) программу, если, например, она зациклилась. Пользователь может нажать комбинацию Ctrl c, операционная система вызывает функцию, и функция прерывает программу. Однако если программа продолжается на удаленной машине, соответствующая функция должна быть вызвана операционной системой удаленной машины. TELNET определяет IP (interrupt process — процесс прерывания) управляющим символом, который читается и интерпретируется как соответствующая команда для вызова функции прерывания в удаленной машине.
  • AO (abort output – остановка вывода). Это то же самое, что и IP, но он позволяет процессу продолжаться, не порождая вывод. Это полезно, если процесс имеет другой результат в дополнение к созданию вывода. Пользователь хочет получить этот результат, но без внешнего вывода. Например, большинство команд в UNIX генерирует вывод и имеет состояние выхода. Пользователь может хотеть сохранить состояние выхода для будущего использования, но не интересуется выходными данными.
  • AYT (Are you there? — Вы там есть?). Этот символ управления используется, чтобы определить, функционирует ли все еще удаленная машина, особенно после долгого молчания сервера. Когда этот символ получен, сервер обычно посылает акустический или визуальный сигнал, чтобы подтвердить, что он функционирует.
  • EC (Erase character — стирание символа). Когда пользователь посылает данные с клавиатуры на местную машину, клавиша удаления или возврата на один символ может стереть последний напечатанный символ. Чтобы сделать то же самое в удаленной машине, TELNET определяет управляющий символ EC.
  • EL (Erase line — стирание линии). Это используется, чтобы стереть текущую линию в удаленном хосте.

Например, рисунок 12.13 показывает, как прервать выполняющуюся бесконечно прикладную программу на стороне сервера. Пользователь напечатает Ctrl c, а клиент TELNET посылает на сервер комбинацию IAC и IP.

Краткие итоги

  • TELNET — приложение клиент-сервер, которое позволяет пользователю войти в удаленную машину, и предоставляет доступ пользователю к удаленной системе.
  • Когда пользователь обращается к удаленной системе с помощью процесса TELNET, программа работает в системе с разделением времени.
  • Оконечный драйвер правильно интерпретирует нажатия клавиши на местном терминале или на терминальном эмуляторе. Для выполнения тех же действий на удаленном терминале требуется применение специальной программы.
  • TELNET использует систему сетевого виртуального терминала (NVT), чтобы кодировать символы в местной системе. В машине сервера NVT расшифровывает символы в форму, приемлемую для удаленной машины.
  • NVT использует набор символов для данных и набор символов для дистанционного управления.
  • TELNET символы управления вставляются в поток данных и предваряются идентификатором, таким как символ управления (IAC).
  • Опции — это операции, которые улучшают процесс TELNET.
  • TELNET позволяет путем переговоров устанавливать условия передачи между клиентом и сервером перед и в течение использования услуги.
  • Некоторые опции могут быть позволены только серверу, некоторые — только клиенту и некоторые — обоим.
  • Опция разрешается или блокируется с помощью предложения или запроса.
  • Опция, которая нуждается в дополнительной информации, требует использования символов подопции.
  • Символы управления могут быть использованы для того, чтобы работать с удаленным сервером.
  • При передаче сигналов вне полосы команды посылаются в неисправном режиме строки.
  • В режиме, заданном по умолчанию, клиент посылает серверу одну строку в один момент времени и ждет символ разрешения (GA), прежде чем может быть принята от пользователя новая строка.
  • В символьном режиме клиент посылает серверу один символ в один момент времени.
  • В режиме строки клиент посылает серверу одну строку в один момент времени, одну за другой, без необходимости вмешательства символа GA.
  • Пользователь обычно не обращается непосредственно к TELNET. Действует дружественное пользователю программное обеспечение как интерфейс между TELNET и пользователем.

Оставьте комментарий