Срок возобновления после отключения ssh без мультиплексора (screen / tmux)

952
Peter Gerdes

Screen и tmux (как и emacs) - это многофункциональные терминальные мультиплексоры, разработанные, чтобы позволить вам эффективно управлять терминалами, как будто это был 1985 год, но они просто усложняют простую задачу возобновления сеанса ssh, на котором вы остановились после переключения сетей и т. Д.

Я использую tmux, когда мне это нужно, но обычно я не пользуюсь разделенными панелями, несколькими окнами, сессиями и т. Д. Я, конечно же, не хочу раздражающих эффектов от работы с терминалом

Все, что я хочу (и полдюжины других людей на этом сайте, которые не знают достаточно, чтобы дать понять, что они не хотят tmux), это ssh wrapper / clone, который продолжает работать после разъединения (переподключения при нажатии клавиши) и Оболочка / клон sshd, которая просто буферизует весь вывод при отключении и передает его при повторном подключении .

Самое близкое, что я видел, это Мош, но как это сложно? В каждом ssh-соединении должен быть уникальный идентификатор (если ничто другое не использует хеш сессионного ключа), а протокол tcp означает, что sshd / ssh (или используемые ими буферы ядра) должны сохранять каждый непакетированный пакет, отправленный перед ssh / sshd решает, что время соединения истекло. По истечении времени ожидания sshd может просто сохранить содержимое непакетированных пакетов и любые новые данные, отправленные термину, и передать их клиенту, подключенному с соответствующим идентификатором.

Возможно ли (или такая опция уже существует) добавить опцию / оболочку с таким поведением (как бы она ни реализована) в ssh? Конечно, он не будет обрабатывать необычные ситуации, такие как изменение размера термина между тайм-аутом и переподключением, но он будет делать то, что все хотят, разрешить мне переподключиться к предыдущему сеансу ssh без перепутывания прокрутки назад, истории и т. Д. И т. Д. И т. Д.

3
что не так с mosh? Я использовал его некоторое время и успешно проводил сеансы, которые длились несколько недель. skarface 10 лет назад 0
Звучит так, будто tmux, screen или byobi - это то, что вам нужно. Если вы не хотите, чтобы все эти другие функции ... не используйте их. Я не знаю, какие раздражающие термины вы видите, но потратьте 30 минут, чтобы исправить их, и тогда у вас будет именно тот инструмент, который вам подходит. ИМХО, YMMV. Joe Casadonte 10 лет назад 0
Mosh требует, чтобы я открыл ssh-соединение в обратном порядке. Это не всегда практично или разрешено. Tmux / Screen пытается управлять терминалом, чтобы вы не могли использовать стандартный прокрутку, чтобы увидеть, что произошло. Посмотрите на все хаки для приложений, таких как less, которые стараются не загрязнять историю терминов после их выхода ... ни один из них не очень хорошо работает во всех случаях. Я хочу, чтобы моя проклятая полоса прокрутки в системе КЛИЕНТА работала. Я не хочу, чтобы СЕРВЕР брал на себя ответственность клиента за терминал. Сервер должен быть максимально тупым Peter Gerdes 10 лет назад 0
Согласен. Главный недостаток мультиплексоров - для меня - это работа с прокруткой. Когда-нибудь я, вероятно, выделю на память клавиши прокрутки в tmux, но это псевдоскроллинг по любому определению, и это раздражает. Я использую tmux только тогда, когда мне нужно запустить какое-то долгосрочное задание, которое я не могу себе позволить прервать, и где я DGAS о прокрутке. Я хочу иметь возможность проводить пальцем вниз (или вращать колесико мыши), чтобы просмотреть мой прокрутку, а не вводить нажатия клавиш вуду (и я использую emacs, так что я чувствую себя комфортно с нажатиями клавиш вуду). К сожалению, я не думаю, что есть такой зверь. anastrophe 10 лет назад 0
@anastrophe, прокрутка прекрасно запускается в tmux с помощью мыши, просто нужно правильно ее настроить (правильный терминал и одна строка в конфигурации с прямым именем). В качестве бонуса у вас есть прокрутка из любого места, где вы подключаетесь к сеансу. unkulunkulu 9 лет назад 0

0 ответов на вопрос

Похожие вопросы