Это сохраняет hapenning, на котором когда-либо сервер я подключен с. Я ввожу:
ssh user@server
Я вхожу в систему, все работает в течение нескольких минут. Но через какое-то время, возможно когда я переключаюсь на другие программы (браузер, клиент ftp и т.д.), когда я пытаюсь ввести что-либо назад в терминале, курсор прекращает мигать, в то время как я ввожу, но ничто на самом деле не вводится. Я не могу выполнить команду и все, что я могу сделать, закрывают окно терминала, вновь открыли его и снова соединяются.
Если это имеет значение, я запускаю Ubuntu 12.04 на своей локальной машине.
Между клиентом и сервером установлен NAT-маршрутизатор или аналогичный брандмауэр с контролем состояния соединений. Когда вы открывали TCP-сессию, брандмауэр помнил, что было создано TCP-соединение между клиентским и серверным портами. Пока брандмауэр помнит соединение, он будет продолжать передавать пакеты между клиентом и сервером.
Сессия "разрывается", потому что брандмауэр забывает о соединении и останавливает передачу пакетов. Брандмауэр может забыть о соединении, потому что у него есть таймаут на простаивающих соединениях. Или он может забыть, потому что у него ограниченное количество памяти и создается слишком много новых соединений, чтобы он мог запомнить их все.
ssh
имеет некоторые опции , чтобы обойти это, посылая периодические "keep-alive" пакеты, когда соединение простаивает. Посмотрите на опции TCPKeepAlive
, ServerAliveInterval
и ServerAliveCountMax
.
Как бы то ни было, вместо закрытия окна терминала вы можете прервать сеанс ssh , набрав , введите ~ . . ] последовательно.