Зачастую целая группа людей, работающих на разных компьютерах и даже из разных мест, должны разделять одну и ту же сессию терминала. Разделенная сессия означает, что вся группа печатает на общей клавиатуре (по очереди) и видит один и тот же экран с результатами команд, приходящими с удаленного компьютера. Такая разделяемая сессия может быть либо подключение к удаленному компьютеру, либо работа в местном CYGWIN.
Когда такая "разделенная" сессия может быть нужна:
Обучение
Более опытные члены группы должны обучать своих коллег и помогать им дистанционно.
только одно подключение к удаленному компьютеру разрешено для всей группы
Удаленный компьютер позволяет только одно единственное подключение, но много людей должны выполнять каждый свою часть работы на этом удаленном компьютере (они должны это делать по очереди, поскольку это та же сессия терминала).
выполнение старых скриптов, которые были написаны для других терминалов
Пользователь вынужден использовать разные типы терминалов для работы с той же самой сессией терминала. Например, пользователь работает большую часть времени в терминале Proxy32, но ему нужно запускать старые скрипты, которые были написаны раньше для другого автоматизированного терминала. Например: Expect скрипт для взаимодействия с удаленным компьютером по протоколу TELNET в терминале Xterm, TeraTerm скрипт, SecureCRT скрипт, AbsoluteTelnet скрипт, и т.д. Если пользователь не хочет конвертировать эти старые скрипты, для того, чтобы запускать их в терминале Proxy32, имеется другой способ выполнить их в существующей сессии терминала Proxy32. Другой терминал (тот, который может выполнять старый скрипт) может быть временно подключен к существующей сессии терминала Proxy32 (через порт для разделения сессии в терминале Proxy32), чтобы выполнить свой скрипт в существующую сессию Proxy32. Потом другой терминал может быть отключен от порта и пользователь может продолжать работать в той же самой сессии в терминале Proxy32.
Каждое окно терминала Proxy32 содержит встроенный TELNET/TLS сервер и один "слушающий" COM-PORT для разделения существующей терминальной сессии с удаленными пользователями. Удаленные пользователи подключаются по протоколам TELNET, TELNET/TLS или Serial к терминалу Proxy32, чтобы получить копию экрана удаленного компьютера и чтобы печатать команды в разделенную сессию терминала. Только один пользователь в любой момент времени может печатать команды для удаленного компьютера (разделенная сессия означает общая клавиатура и общий экран), в противном случае удаленный компьютер не сможет распознать команды. Местный пользователь в терминале Proxy32 может переключать удаленных пользователей в режим "только для чтения", в котором они будут продолжать получать результаты команд с удаленного компьютера, но они не смогут печатать свои команды на удаленный компьютер.
TELNET server:
неограниченное число удаленных пользователей (TELNET клиентов). Аутентикация шифрования не используется. Удаленный пользователь должен знать только номер разделяемого TCP порта для того, чтобы подключиться к сессии терминала Proxy32. По умолчанию номер порта является случаным, так что локальный пользователь должен сообщить эту информацию удаленному пользователю перед тем как удаленный пользователь сможет подключиться к терминалу локального пользователя.
TELNET/TLS server (TELNET protocol over Transport Layer Security protocol):
неограниченное число удаленных пользователей (клиентов TELNET/TLS). Аутентификация с помощью цифровых сертификатов (только сервер или оба - клиент и сервер). Шифрование реализовано в библиотеке Microsoft Windows SCHANNEL (которая также используется для TLS в протоколе HTTPS в MS Internet Explorer). Удаленный пользователь должен знать заранее номер "разделяемого" TCP порта, для того, чтобы подключиться к сессии терминала Proxy32. После того как TCP соединение установлено обе стороны проверят сертификаты друг друга и, если проверка была успешной, они приступят к переговорам по выбору шифра. После того как переговоры о выборе шифра завершены, включается шифрование, а затем соединение TELNET устанавливается внутри зашифрованного потока TLS/TCP.
Serial (COM-PORT):
один удаленный пользователь (serial Terminal). Аутентикация и шифрование не используются. Удаленный пользователь должен знать только номер разделенного COM-PORT и все его настройки, чтобы подключиться к сессии терминала Proxy32. Эта опция полезна для подключения через Bluetooth COM-PORT соединение, чтобы разделять сессию терминала между двумя компьютерами, которые изолированы по IP посредством firewall или посредством инфраструктуры.
Создать терминал и подключить его к удаленному оборудованию. Это сессия терминала, которую мы будем разделять.
Извлечь информацию, которую нужно передать другим пользователям, чтобы они могли подключиться к разделяемой сессии (к терминалу, который мы создали на шаге 1). Для этого необходимо открыть в разделяемом терминале выпадающий список, который находится справа от кнопки с изображением замка (ссылка 10) и в этом списке выбрать строчку, которая содержит информацию о подключении.
При выборе строчки ее текст копируется на клипборд, так что его легко вставить в текстовое сообщение или в e-mail и отправить пользователю, который будет использовать эту информацию, чтобы подключиться к разделяемой сессии. Содержимое списка состоит из 3-х частей. В верхней части указан номер порта, к которому нужно подключаться, чтобы получить доступ к разделяемой сессии (каждая разделяемая сессия или окно терминала имеют свой уникальный номер порта). Во второй части списка после горизонтальной линии приведен перечень IP адресов, к которым можно подключаться, чтобы получить доступ к разделяемой сессии терминала. В третьей части списка после горизонтальной линии приведен список комбинаций протокол/IP адрес/порт, которые можно использовать, чтобы подключаться к разделяемой сессии терминала. Протокол может быть или TELNET или TELNET-TLS в зависимости от состояния кнопки включения TLS (ссылка 9).
Список IP адресов может содержать только один IP адрес 127.0.0.1, если включена опция "TSS Server listens only on loopback IP" в меню терминала "Control/Sharing Terminal Session with other users/TELNET/TLS SERVER". Выпадающий список содержит информацию в разных сочетаниях, чтобы пользователь мог выбрать, какой элемент списка он хочет скопировать на клипборд для передачи другому пользователю. Содержимое списка обновляется каждый раз, когда он открывается. При повторном открытии список IP адресов или протокол могут измениться, если изменилась конфигурация терминала или компьютера. Кроме того, пользователь должен убедиться, что опция "TSS Server denies new connections" в меню терминала не включена. При использовании протокола TELNET-TLS для разделения сессии может возникнуть необходимость задать параметры протокола TLS, включая выбор сертификата, который будет использоваться при аутентификации подключения к разделяемой сессии.
TELNET сервер в каждом из окон терминала использует свой уникальный номер TCP порта для того, чтобы принимать запросы на подключение, приходящие от TELNET терминалов удаленных пользователей. Таким образом, путем выбора номера порта для подключения удаленный пользователь может выбирать к какому из окон терминала основного пользователя он будет подключаться.
По умолчанию в Proxy32 при создании нового окна встроенного терминала номер TCP порта для встроенного TELNET сервера выбирается из списка свободных портов, которые имеются в системе. Если несколько окон встроенного терминала создаются подряд одно за другим, то выбранные номера портов могут оказаться последовательными. Если окно встроенного терминала закрывается, то используемый номер порта освобождается и впоследствии может быть назначен одному из вновь создаваемых окон. По умолчанию пользователь не имеет контроля над тем, какие номера портов выделяются вновь создаваемым окнам терминала. В ситуации, когда TELNET сервер находится за Firewall-ом, то пользователь может выбрать опцию, при которой каждое вновь создаваемое окно будет пытаться использовать заданный начальный номер порта, например, 1300. Если этот номер порта свободен, он будет использован, а если он занят, то это окно будет пытаться использовать следующий номер порта 1301. Процесс будет продолжаться путем увеличения номера порта на единицу до тех пор, пока свободный порт не будет найден и использован. Следующее создаваемое окно терминала будет использовать такой же алгоритм для выбора номера порта. В результате все создаваемые окна будут иметь номера портов в диапазоне 1300 и чуть выше при условии, что этот диапазон портов свободен в системе. Пользователь может включать и выключать этот алгоритм выбора портов, а также выбирать начальный номер порта, который по умолчанию равен 1300. Эти настройки находятся в меню “Settings/Initial Terminal Settings/Terminal Session Sharing”. Начальный порт по умолчанию был выбран для использования на Windows XP, а при использовании Proxy32 на других операционных системах начальный порт может быть скорректирован для того, чтобы его значение попадало в диапазон свободных портов, которые позволено использовать в конкретной операционной системе. При использовании Firewall диапазон портов, используемый окнами терминала Proxy32 (в нашем примере диапазон портов, начиная с 1300 и чуть выше) должен быть открыт в Firewall для того, чтобы удаленные пользователи могли подключаться к этим окнам терминала.
Удаленный пользователь использует полученную информацию для подключения к разделяемой сессии. Если удаленный пользователь получил от владельца разделяемой сессии строчку "telnet belous-PC 64382", которая скопирована из выпадающего списка в разделямом терминале, то он может вставить эту строчку в свой bash терминал и нажать клавишу Enter для подключения к разделяемой сессии. При использовании протокола TELNET-TLS для разделения сессии может возникнуть необходимость задать параметры протокола TLS, включая выбор сертификата, который будет использоваться при аутентификации подключения к разделяемой сессии.
Владелец разделяемой сессии получает информацию о том, что удаленный пользователь подключился к разделяемой сессии. Эта информация появляется как сообщение в окне разделяемого терминала. Кроме того, список всех удаленных пользователей, подключенных к разделяемой сессии находится в выпадающем списке (ссылка 11 на рис. 1) в нижней части окна разделяемого терминала.
Владелец разделяемой сессии и удаленный пользователь, подключенный к разделяемой сессии, могут печатать по очереди в разделяемую сессию. Результаты выполнения команд поступают одновременно в оба терминала.
Удаленный пользователь отключается от разделяемой сессии, разрывая соединение в своем терминале (например, нажимает "Ctrl-]", а затем печатает "quit" на подсказку "telnet>"). Владелец разделяемой сессии получает информацию о том, что удаленный пользователь отключился от разделяемой сессии. Эта информация появляется как сообщение в окне разделяемого терминала. Кроме того, список всех удаленных пользователей, подключенных к разделяемой сессии находится в выпадающем списке (ссылка 11 на рис. 1) в нижней части окна разделяемого терминала. Владелец разделяемой сессии может сам отключить удаленного пользователя (или запретить ему печатать в разделяемую сессию), используя команды в меню терминала.