увеличение времени сессии SSH

Thank you for reading this post, don't forget to subscribe!

Про­бле­ма изна­чаль­но заклю­ча­лась в сле­ду­ю­щем - при под­клю­че­нии ксер­ве­ру по SSH сес­сия обры­ва­лась доста­точ­но быст­ро, зада­ча сто­я­ла в уве­ли­че­нии интер­ва­ла тай­мау­та. Соот­вест­ву­ю­щие настрой­ки мож­но про­из­ве­сти отре­дак­ти­ро­вав файл sshd_config расположенный:

/etc/ssh/sshd_config

В дан­ном фай­ле необ­хо­ди­мо най­ти несколь­ко директив:

TCPKeepAlive - опре­де­ля­ет под­держ­ку соеди­не­ние в актив­ном состо­я­нии, для это­го исполь­зу­ют­ся спе­ци­аль­ные кон­троль­ные сооб­ще­ния, посы­ла­е­мые с опре­де­лен­ным интер­ва­лом вре­ме­ни. Если дирек­ти­ва уста­нов­ле­на, обрыв соеди­не­ния будет вовре­мя заме­чен, а соот­вет­ству­ю­щий про­цесс будет убит. Воз­мож­ные зна­че­ния "yes", "no".

ClientAliveInterval - вре­мя про­стоя кли­ен­та в секун­дах, после кото­ро­го демон sshd отправ­ля­ет через защи­щён­ный канал запрос кли­ен­ту. Дирек­ти­ва рабо­та­ет толь­ко для про­то­ко­ла 2. По-умол­ча­нию уста­нов­лен в 0, т.е. кли­ен­ту вооб­ще не будут направ­лять­ся такие запросы.

ClientAliveCountMax - коли­че­ство про­ве­рок доступ­но­сти кли­ен­та, кото­рые могут оста­вать­ся без отве­та. Если пре­дел достиг­нут, sshd завер­шит сеанс. Дан­ные запро­сы, отли­ча­ют­ся от TCPKeepAlive, так как отправ­ля­ют­ся через защи­щён­ный канал и не могут быть под­ме­не­ны, в то вре­мя как TCPKeepAlive такую воз­мож­ность допускает.
СlientAlive поле­зен, если пове­де­ние кли­ен­та или сер­ве­ра зави­сит от актив­но­сти соеди­не­ния. Если ClientAliveInterval рав­но 15 секун­дам, а зна­че­ние ClientAliveCountMax остав­ле­но по-умол­ча­нию, не отве­ча­ю­щие кли­ен­ты SSH, будут отклю­чать­ся при­бли­зи­тель­но через 45 секунд. Пара­метр рабо­та­ет толь­ко для про­то­ко­ла вер­сии 2. По-умол­ча­нию уста­нов­ле­но зна­че­ние 3.

Ниже при­ве­ду при­ме­ры настро­ек для SSHD

TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 180

TCPKeepAlive про­ве­ря­ет нахо­дит­ся ли кли­ент на линии, ClientAliveInterval вре­мя про­стоя в секун­дах, после кото­ро­го демон sshd отправ­ля­ет запрос кли­ен­ту, ClientAliveCountMax ука­зы­ва­ет коли­че­ство про­ве­рок доступ­но­сти кли­ен­та, выше в при­ме­ре указ­на под­держ­ка сое­и­не­ния в тече­нии 3 часов (180 минут).

TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 10

Здесь 10 минут т.е. 60 секунд по 10, для при­ме­ра мож­но так же выста­вить 10 минут сле­ду­ю­щим образом

ClientAliveInterval 600
ClientAliveCountMax 0

У меня настро­ен к при­ме­ру час

ClientAliveInterval 60
ClientAliveCountMax 60

Не забы­ва­ем на кли­ен­те ука­зать настрой­ки, для Linux

nano ~/.ssh/config

Добав­ля­ем строки

ServerAliveInterval 60
ServerAliveCountMax 60