PuTTY / SSH: как предотвратить автоматический выход из системы?

SSH-сервер моего провайдера (Debian 2.0) выходит из системы после 35 минут бездействия при подключении к PuTTY (Windows XP). Это большая проблема, когда я использую сервер для переадресации портов. Последние сообщения, отображаемые в терминале:

This terminal has been idle 30 minutes. If it remains idle
for 5 more minutes it will be logged out by the system.

Logged out by the system.

параметры шпатлевки, которые делают не help:

  • отправка нулевых пакетов для сохранения активности сеанса. Секунды между keepalives (0, чтобы выключить): 30
  • [x] включить поддержку активности TCP (SO_KEEPALIVE option)

есть идеи, как избежать автоматического выхода из системы? Должен ли я попробовать другой клиент SSH?

14
задан Chenmunka
30.03.2023 23:09 Количество просмотров материала 2361
Распечатать страницу

4 ответа

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

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

while sleep 60; do
    echo "Still there"
done

Так что терминал показывает активность, и он не должен выходить из системы.

но это зависит от операционной системы они используют, какой вариант поможет. Вы не скажите, вы? uname -a - твой друг.

2
отвечен mihi 2023-04-01 06:57

какую оболочку вы используете на сервере?

вы можете попытаться войти в без панциря, тикая ConnectionSSHDon't start a shell or command at all, или вы можете попробовать запустить другую оболочку и убедиться, что в ней не включена функция автоматического выхода из системы.

например, попробовать tcsh и убедиться, что autologout не задано, при выполнении unset autologout.

1
отвечен cnst 2023-04-01 09:14

У меня есть простой скрипт AutoHotkey для работы с любым сеансом Telnet / SSH, открытым из Windows. Это может кому-то помочь:

SetTitleMatchMode 2     ; 2 - partially, 3 - exact match
MyWinTitle=- PuTTY      ; Describe the window for keep alive signals
Timeout=180000          ; Call KeepAlive every 180 seconds (180000 ms)

ttl := Timeout / 1000
ToolTip, Keepalives every '%ttl%' seconds for the last touched '%MyWinTitle%' window`nTo stop the keepalive press F12
SetTimer, RemoveToolTip, 3000   ; Shows the tooltip for 5 seconds
return

RemoveToolTip:
    SetTimer, RemoveToolTip, Off    ; only once
    ToolTip
    Gosub, MyKeepAlive
Return

MyKeepAlive:
    WinGetActiveTitle, Title

    IfWinExist, %MyWinTitle%
    {
        WinActivate
        WinGet, mywin_id
        WinGetActiveTitle, mywin_title
        Send {!}{BS}
        MsgBox,,Info message, The window for keep-alives is '%mywin_title%',3
        WinActivate, %Title%
    }
    else
    {
        MsgBox,,Exit message, Open the window first!,10
        ExitApp
    }

    SetTimer, KeepAlive, %Timeout%
    Return

    KeepAlive:
        WinGetActiveTitle, Title
        WinGetTitle, current_title, ahk_id %mywin_id%

        If current_title = %mywin_title%
        {
            WinActivate, ahk_id %mywin_id%
            Send {!}{BS}
            WinActivate, %Title%
        }
        else
        {
            MsgBox,,Exit message, The window was closed!,10
            ExitApp
        }
    Return
Return

F12::ExitApp                ; Exit button
1
отвечен freealx 2023-04-01 11:31

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

вы можете попробовать организовать что-то в сессии, чтобы быть постоянно обновляется, возможно, с помощью screen и организации для обновления часы, чтобы быть в строке состояния, как видно в этом примере. Если что дисплей часов не обновляется без ввода пользователя, вместо этого вы можете попробовать разделить сеанс экрана (ctrl + A, ctrl+S), резизировать дополнительное видимое окно очень маленьким (ctrl+a :resize 2) и иметь в том, что автоматически обновляется, как watch -n 10 date например.

0
отвечен David Spillett 2023-04-01 13:48

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх