Многие веб-сайты ссылались на screen , но мне кажется, что screen поддерживает пользователей для возврата экрана SSH после отключения.

Скажем, я подключаюсь к серверу через SSH с моего ноутбука. Теперь я перезагружаю ноутбук. Могу ли я вернуться к предыдущему сеансу SSH?

Спасибо

1 ответ1

1

Обычно, когда вы корректно отключаете SSH, сервер получает уведомление. Если вы исчезли без уведомления сервера, технически вы могли бы вернуться к тому же сеансу SSH, если бы вы использовали одни и те же одноразовые секреты, и это не слишком поздно. Например, это может произойти, когда ваше сетевое соединение временно обрывается и в данный момент данные не передаются. После восстановления сетевого подключения SSH может работать так, как будто ничего не произошло. Но если какой-либо конец попытался отправить пакет и потерпел неудачу, программное обеспечение SSH (с этой стороны) понимает, что существует "сломанный канал", и формально закрывает соединение.

Обычно мы хотим обнаруживать заблокированные соединения, а не хранить их бесконечно. Есть несколько вариантов (для серверов и для клиентов), которые помогают (см. Этот мой другой ответ).

Предположим, вы хотите (неправильно) использовать это явление после перезагрузки клиента. Существуют (довольно не элегантные) способы заставить ваш SSH-клиент исчезнуть без уведомления сервера, но ни один обычный SSH-клиент не хранит одноразовые секреты между своими сеансами и пытается использовать их без рукопожатия при следующем подключении к тому же серверу. Они разовые по дизайну. Кроме того, уровень TCP довольно сложный и с сохранением состояния, поэтому вам нужно будет еще больше хранить и восстанавливать, чтобы обмануть сервер. Это не стандартные способы; протоколы не предназначены для таких уловок.

Я не думаю, что вам действительно нужно попасть на тот же сеанс SSH. screen (или tmux) - это правильный инструмент для доступа к тому же сеансу оболочки (если он используется на удаленной стороне, не повторяйте эту ошибку); обычно этого достаточно.


Если вы думаете, что screen не является решением в вашем случае, но возобновление SSH будет, то, возможно, это проблема XY. Если так, то, пожалуйста, задайте другой вопрос и скажите нам, что вы действительно пытаетесь сделать. Возможно, мы могли бы найти решение, но возобновление той же сессии SSH не будет этим.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .