Eu estou procurando uma maneira eficaz de matar as sessões de login ocioso (console, ssh, etc). Há toneladas de respostas na internet sobre como fazer isso, mas todas elas cobrem apenas casos de uso muito básicos.
Os requisitos são:
As soluções que não funcionam:
w
/ who
output: Isso não funciona porque nem todas as sessões serão exibidas nessa lista. Por exemplo, você pode fazer ssh foo.example.com bash
e esta sessão não será mostrada na lista.
Você também pode fazer ssh -N foo.example.com
, ou um% background ControlMaster
process, que não será exibido.
sshd_config
' ClientAliveInterval
& ClientAliveCountMax
: Esta é outra recomendação que eu vejo muito, e não funciona como matar conexões ociosas não é de todo o que se pretendia fazer. Essas configurações foram feitas para detectar e matar as conexões mortas, e não as inativas.
Essas configurações são muito fáceis de ignorar, definindo ServerAliveInterval
no cliente.
TMOUT
variable Esta é uma solução muito fraca, pois requer um shell e é facilmente anulada pelo usuário.